Php PDO fetchAll始终返回空数组

Php PDO fetchAll始终返回空数组,php,mysql,pdo,Php,Mysql,Pdo,我在运行时得到一个空数组: try { $pdo = new PDO('mysql:127.0.0.1:dbname=mytodo', 'root', 'root'); } catch (PDOException $e) { die('Could not connect.'); } $statement = $pdo->prepare('select * from todos'); $statement->execute(); var_dump($stateme

我在运行时得到一个空数组:

try {
    $pdo = new PDO('mysql:127.0.0.1:dbname=mytodo', 'root', 'root');
}
catch (PDOException $e) {
    die('Could not connect.');
}

$statement = $pdo->prepare('select * from todos');

$statement->execute();

var_dump($statement->fetchAll());
我检查了数据库,运行相同的查询“select*from todos”返回预期结果。 我试过使用不同的数据库和表。我总是得到一个空数组。 有没有关于出了什么问题的想法? 我正在运行MAMP PRO,无论我选择什么PHP版本,都会遇到同样的问题


默认情况下,任何非常受欢迎的答案或指针,PDO都会在出现大量查询错误时悄无声息地消失。还要检查打字错误


//语句的其余部分也可以进入try块。如果您有$e错误消息,为什么不回显它呢?

默认情况下,PDO会在许多查询错误中悄无声息地消失。还要检查打字错误


//语句的其余部分也可以进入try块。如果您有$e错误消息,为什么不回显?

在回送地址后是否需要分号而不是冒号<代码>$dbh=newpdo('mysql:host=localhost;dbname=test',$user,$pass)而mysql:127.0.0.1:dbname是冒号而不是分号,这是你的真实代码吗?如果是这样的话,检查上面的错误会给你带来一些麻烦。@johneleman他们肯定会这样做,除非那只是一个糟糕的粘贴。你需要在循环回地址后面用分号而不是冒号吗<代码>$dbh=newpdo('mysql:host=localhost;dbname=test',$user,$pass)而mysql:127.0.0.1:dbname是冒号而不是分号,这是你的真实代码吗?如果是这样的话,检查上面的错误会给你带来一些麻烦。@johneleman他们肯定会的,除非那只是一个糟糕的粘贴。谢谢,深夜的编码错误。更新的代码可以添加多个catch块。第一个捕获“\Exception”然后是“\PDOException”。谢谢,深夜编码错误。更新的代码可以添加多个catch块。第一次捕获'\Exception',然后是'\PDOException'。