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'];
}

「user」と「pass」を変更することを忘れないでください

于 2012-09-15T15:26:05.017 に答える
1

エラーモードを PDO::ERRMODE_SILENT ではなく PDO::ERRMODE_EXCEPTION に設定する必要があります (これがデフォルトであるため、例外が発生しません)。

于 2012-09-15T15:17:34.530 に答える