【问题标题】:Print_r returns value of Array()Print_r 返回 Array() 的值
【发布时间】:2014-01-15 21:02:00
【问题描述】:

现在,我正在失去耐心哈哈:D

问题是,无论我尝试什么,我都无法解决问题。

在我的 php 代码中,我成功连接到数据库,通过 ajax 将 $_POST 变量发送给它,

毕竟,我存储在 $result 中:

$result = $q->fetchAll(PDO::FETCH_OBJ);

但是当我调用 print_r 之后:

print_r($result);

总是但总是我得到“Array()”。

1000 次更改后,尝试了所有可能性,但没有任何东西能够从表中获取数据。

可能出了什么问题?

代码如下:

<?php

$mov = (isset($_POST['movie'])) ? $_POST['movie'] : null;

if ($mov != null)
{
    $conn = new PDO('mysql:host=127.0.0.1;dbname=workstation', 'root', 'password');

    $q = $conn->prepare("SELECT * FROM movies WHERE name LIKE '%:mov%'");
    $q->bindValue(':mov', $mov, PDO::PARAM_STR);
    $q->execute();
    $r = $q->fetchAll(PDO::FETCH_OBJ);
    $c = $q->rowCount();

    print_r($r);
    echo $c;

    /*
     * $name = $r[$key]->name; // in foreach loop for all found...
     * there should be returned
     * $res .= '<div>'.$name.'</div>'
     */
}
else
{
    $result = 'Type query...';
}

echo $result;

【问题讨论】:

  • 你能告诉我们sql查询本身吗?
  • 可能是一个空的查询结果集?
  • 哦,我忘了提到 echo $c = $query->rowsCount() 返回值 1,所以它不是空的,执行的查询是:“SELECT * FROM movies WHERE name喜欢'$mov'"
  • @Floris: 在一个 empty 数组上?!
  • 如果您省略查询的WHERE 部分会发生什么?哦 - 我真的希望您使用比 toot 更强大的用户来测试您的代码...

标签: php oop pdo


【解决方案1】:
$q = $dbh->prepare("SELECT nom, couleur FROM fruit");
$q->execute();

$result = $q->fetchAll(PDO::FETCH_ASSOC);
print_r($result);

可能是你没有执行你准备好的语句,这就是它给你空白数组的原因。试试它可能是有效的......把你的查询代替我的查询..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 2016-10-23
    • 2019-02-19
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多