打印PDO查询结果

时间:2015-07-20 23:07:36

标签: php mysql pdo

我正在尝试打印查询的所有结果,但由于某种原因,我收到以下错误:致命错误:在第X行的H:\ Some-Location \中调用boolean上的成员函数fetch() / p>

这是我的代码:

Found one = "hello"
Found one = "good"
Found one = "bye"
Found one = "tomorrow"
Found one = "a quick fox"
Found one = "a slow bird"
Found one = "a smart dog"
Found one = "a wilf flowert"

出了什么问题?

3 个答案:

答案 0 :(得分:2)

正如文档和错误所示,execute返回一个布尔值:http://php.net/manual/en/pdostatement.execute.php

您需要在语句上调用fetch(),而不是execute的返回值。 :http://php.net/manual/en/pdostatement.fetch.php

所以用$result>fetch()替换$stmt->fetch()

答案 1 :(得分:0)

execute()上的PDOStatement方法不返回结果,它仅表示查询是否成功(仅在不使用异常时有用)。

PHP Documentation

public bool PDOStatement::execute ([ array $input_parameters ] )

您要做的是使用PDOStatement本身来获取数据:

while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    echo $row['adID'];
}

注意:根据您当前的逻辑,即使抛出异常,循环也会执行。尝试从catch块返回或将循环放在try块内。

答案 2 :(得分:0)

$ result只是一个保存execute语句成功/失败的布尔值。

你需要在$ stmt上运行fetch:

while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
            {
                echo $row['adID'];
            }

根据此处的文档: http://php.net/manual/en/pdostatement.fetch.php