1

我是 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);
4

4 回答 4

5

改变:

mysql:localhost;widet_corp

mysql:host=localhost;dbname=widget_corp

同样在您发布的代码中:

$query = $pdo->query("SELECT * FROM 'users'");

你有单引号内的表名。在 Mysql 中,您应该对表和列使用反引号。

    $query = $pdo->query("SELECT * FROM `users`");
于 2012-09-07T10:22:49.090 回答
4

PDO::queryfalse如果您的查询错误,则返回。

SELECT * FROM 'users'

应该

SELECT * FROM `users`
于 2012-09-07T10:25:12.550 回答
3

$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);
}
于 2012-09-07T10:22:59.590 回答
1

请改用此代码:

$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安装正确吗?

于 2012-09-07T10:23:46.103 回答