Php 致命错误:对pdo中的非对象调用成员函数fetchAll()

Php 致命错误:对pdo中的非对象调用成员函数fetchAll(),php,pdo,Php,Pdo,我是pdo的新手,刚刚尝试了以下操作,但出现了致命错误 $pdo = new pdo('mysql:localhost;widget_corp;charset=utf-8', 'root', ''); $query = $pdo->query("SELECT * FROM 'users'"); $result_array = $query->fetchAll(PDO::FETCH_ASSOC); 更改: mysql:localhost;widet_corp 到 在您发布的代码中:

我是pdo的新手,刚刚尝试了以下操作,但出现了致命错误

$pdo = new pdo('mysql:localhost;widget_corp;charset=utf-8', 'root', '');
$query = $pdo->query("SELECT * FROM 'users'");
$result_array = $query->fetchAll(PDO::FETCH_ASSOC);
更改:

mysql:localhost;widet_corp

在您发布的代码中:

$query = $pdo->query("SELECT * FROM 'users'");
表名包含在单引号中。在Mysql中,表和列应该使用反勾号

    $query = $pdo->query("SELECT * FROM `users`");
更改:

mysql:localhost;widet_corp

在您发布的代码中:

$query = $pdo->query("SELECT * FROM 'users'");
表名包含在单引号中。在Mysql中,表和列应该使用反勾号

    $query = $pdo->query("SELECT * FROM `users`");
如果查询失败,
$pdo->query()
将返回false。您没有正确启动pdo,可能需要检查查询是否没有返回错误,因此:

$pdo = new pdo('mysql:host=localhost;dbname=widget_corp;charset=utf-8', 'root', '');
$query = $pdo->query("SELECT * FROM `users`");
if($query !== false)
{
    $result_array = $query->fetchAll(PDO::FETCH_ASSOC);
}
如果查询失败,
$pdo->query()
将返回false。您没有正确启动pdo,可能需要检查查询是否没有返回错误,因此:

$pdo = new pdo('mysql:host=localhost;dbname=widget_corp;charset=utf-8', 'root', '');
$query = $pdo->query("SELECT * FROM `users`");
if($query !== false)
{
    $result_array = $query->fetchAll(PDO::FETCH_ASSOC);
}
请改用此代码:

$pdo = new PDO('mysql:host=localhost;dbname=widget_corp;charset=UTF-8', 'root', '');
$query = $pdo->query("SELECT * FROM `users`");
$result_array = $query->fetchAll(PDO::FETCH_ASSOC);
如果此操作不起作用,是否确定已正确安装
PDO

请改用此代码:

$pdo = new PDO('mysql:host=localhost;dbname=widget_corp;charset=UTF-8', 'root', '');
$query = $pdo->query("SELECT * FROM `users`");
$result_array = $query->fetchAll(PDO::FETCH_ASSOC);

如果这不起作用,您确定
PDO
安装正确吗?

PDO::query
如果查询错误,返回
false

从“用户”中选择*

应该是

SELECT * FROM `users`

PDO::query
如果查询错误,则返回
false

从“用户”中选择*

应该是

SELECT * FROM `users`

pdo是否必须大写?
host=localhost;dbname=widget_corp
刚刚添加了这个并成功了。我想知道原因。实际上,有几个问题:1dbname=。检查失败的查询并使用显示错误,您不应使用撇号
,而应使用反勾号“这应该放在地球上某个地方的SQL调试手册中。pdo是否必须大写?
host=localhost;dbname=widget_corp
刚刚添加了这个并成功了。我想知道原因。实际上,有几个问题:1dbname=。检查失败的查询并使用显示错误,您不应使用撇号
,而应使用倒勾`这应该放在地球上某个地方的SQL调试手册中。
host=localhost;dbname=widget_corp
刚刚添加了这个并成功了。想知道原因吗。@YousufIqbal您的连接字符串需要包含某些信息,对于mysql,这恰好是语法。不知道我还能说什么:)
host=localhost;dbname=widget_corp
刚刚添加了这个并成功了。想知道原因吗。@YousufIqbal您的连接字符串需要包含某些信息,对于mysql,这恰好是语法。不知道我还能说什么:)
host=localhost;dbname=widget_corp
这就是错误。我没有正确初始化pdo。
host=localhost;dbname=widget_corp
这就是错误。我没有正确初始化pdo。
print\r($dbh->errorInfo())
将显示数组的内容。
print\r($dbh->errorInfo())将向您显示数组的内容。@YousufIqbal哦,很抱歉没有发现这个错误。我编辑了我的答案,看一看。@YousufIqbal哦,很抱歉没有发现那个错误。我编辑了我的答案,看一看。