没有错误消息的 PDO 问题

djm*_*m61 0 php mysql pdo

我有以下代码片段:

error_reporting(E_ALL);
$hostname = "localhost";
$username = "user";
$password = "password";
try {
    $db = new PDO("mysql:host=$hostname;dbname=DBNAME", $username, $password);
    echo "connected...<br/>\n";flush();
    $sql = "SELECT COLA, COLB FROM TABLEA LIMIT 10";
    echo "query:$sql--<br/>\n";flush();
    $stmt = $dbh->query($sql);
    echo "statement:<pre>";print_r($stmt);echo "</pre>\nfetching...<br/>\n";flush();
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($result === true) {
        echo "result is true<br/>\n";flush();
    }
    else if ($result === false) {
        echo "result is false<br/>\n";flush();
    }
    else {
        echo "what?<br/>\n";flush();
    }
    foreach ($result as $key=>$val) {
        echo "key:$key - val:$val--<br/>\n";flush();
    }
    echo "done";
    $dbh = null;
}
catch (Exception $e) {
    die ($e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我有一堆调试 echo 语句,但我看到的只有:

connected...
query:SELECT COLA, COLB FROM TABLEA LIMIT 10
Run Code Online (Sandbox Code Playgroud)

我期待看到我的语句对象和结果一样显示出来,我是否遗漏了什么?

bri*_*n_d 5

初始化 PDO 对象后,尝试将错误模式设置得更高。

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

默认值是PDO::ERRMODE_SILENT不会输出警告/错误。使用此默认设置,您必须轮询errorInfo()以查看错误详细信息。