1

我正在尝试从数据库中获取结果,它没有返回任何错误,也没有返回任何结果。关于我做错了什么的任何想法?

try {
    $db_connection = new PDO("mysql:host = $hostname; dbname = $database", $username, $password);
    //$db_connection->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT );  
    $query = $db_connection->prepare("SELECT `id`, `code` FROM `mycodedatabase` WHERE 1");
    $query->execute();
    while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
        echo $row['id'];
        echo $row['code'];
    }
    $db_connection = null;
}
catch(PDOException $e) {
    echo $e->getMessage();
}
4

2 回答 2

5

尽量避免将相同的变量用于不同的目的。使用 $query 和 $result。不要让你的代码复杂。我认为这将有助于调试并在逻辑看起来正确时避免错误。

<?php

$pdo = new PDO('mysql:host=localhost;dbname=$database', "user", "pass");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$query = "SELECT id,code FROM mycodebase";
$result = $pdo->prepare($query);
$result->execute();

while ($row = $result->fetch()) {
    echo $row['id'];
    echo $row['code'];
}

不要忘记更改“用户”和“通过”

于 2012-09-15T15:26:05.017 回答
1

您必须将错误模式设置为 PDO::ERRMODE_EXCEPTION 而不是 PDO::ERRMODE_SILENT (这是默认设置,因此不会引发异常)。

于 2012-09-15T15:17:34.530 回答