Php 致命错误:对pdo中的非对象调用成员函数fetchAll()
我是pdo的新手,刚刚尝试了以下操作,但出现了致命错误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 = 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
刚刚添加了这个并成功了。我想知道原因。实际上,有几个问题:1”
,而应使用反勾号“这应该放在地球上某个地方的SQL调试手册中。pdo是否必须大写?host=localhost;dbname=widget_corp
刚刚添加了这个并成功了。我想知道原因。实际上,有几个问题:1”
,而应使用倒勾`这应该放在地球上某个地方的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哦,很抱歉没有发现那个错误。我编辑了我的答案,看一看。