0

执行以下查询时出现致命错误:

$stmt = $db->query('SELECT * FROM comments LIMIT 50');
    while ($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo $result['name'] . ':' . strip_tags($result['message']);
    }

回报:

  Fatal error: Call to a member function query() on a non-object

我这样设置我的 $db :

try {$db = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');}
catch(PDOException $e) {echo $e->getMessage();}

有谁知道是什么导致了这个错误?

4

2 回答 2

1

由于执行查询,您没有收到错误。查询实际上永远不会尝试执行

这个错误 -

Fatal error: Call to a member function query() on a non-object

告诉你那$db不是一个对象。

要么它从未实例化,要么它在不同的范围内实例化。

于 2012-11-21T20:18:33.780 回答
0

$db 尚未在您使用它的范围内正确初始化。

您可能想尝试global $db;在他们两个之前放置一个,看看它是否是一个范围问题。

global $db;
try {$db = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');}
catch(PDOException $e) {echo $e->getMessage();}

global $db;
$stmt = $db->query('SELECT * FROM comments LIMIT 50');
    while ($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo $result['name'] . ':' . strip_tags($result['message']);
    }
于 2012-11-21T20:18:02.730 回答