我正在尝试运行这个简单的查询:
try {
$dsn = "mysql:host=localhost;dbname:mydb";
$PDO = new PDO($dsn, 'root', '');
$statement = $PDO->query("SELECT * FROM posts");
var_dump($statement);
} catch (PDOException $e) { exit($e->getMessage()); }
并输出:
bool(false)
我真的生气了这个错误。我试图在我的数据库上运行查询。 $PDO
是一个PDO对象,因此从技术上讲它连接到数据库。似乎所有专业功能都没有出错。在phpmyadmin上从$PDO->query()
运行复制和粘贴的查询会返回2条记录的列表。我不知道该怎么做才能认真对待。我开始拉头发用头撞墙(这不是比喻)。
我做错了什么?
答案 0 :(得分:5)
您有DSN问题。
dbname:mydb
应该是
dbname=mydb
你不喜欢编程吗?
除了上述声明之外,您还应该在PDO属性中启用例外。通过在连接后添加以下语句来完成:
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo
,$databaseConnection
$awesomeMultipleWordedVariable
,$another_awesome_multiple_worded_variable
。答案 1 :(得分:1)
您应该启用PDO例外:
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);