我正在尝试运行这个简单的查询:
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()); }
Run Code Online (Sandbox Code Playgroud)
而这个输出:
bool(false)
Run Code Online (Sandbox Code Playgroud)
我真的生气了这个错误.我试图在我的数据库上运行查询.$PDO是一个PDO对象,因此从技术上讲它连接到数据库.似乎所有专业功能都没有出错.从$PDO->query()phpmyadmin 运行复制和粘贴的查询返回2记录的列表.我不知道该怎么做才能认真对待.我开始拉头发用头撞墙(这不是比喻).我究竟做错了什么?
您有DSN问题.
dbname:mydb
Run Code Online (Sandbox Code Playgroud)
应该
dbname=mydb
Run Code Online (Sandbox Code Playgroud)
你不喜欢编程吗?
除了上述语句之外,您还应该在PDO属性中启用例外.通过在连接后立即添加以下语句来完成:
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)
$pdo,$databaseConnection $awesomeMultipleWordedVariable,$another_awesome_multiple_worded_variable.