0

初めてPDOを使用しています。

$result=$dbh->query($query) or die($dbh->errorinfo()."\n");

echo $result->fetchColumn();

$row = $result->fetch(PDO::FETCH_ASSOC);

次のコードの結果は、$ rowが初期化されます。つまり、issetですが、空です。

どこが間違っていたのかわからなかった。前もって感謝します

4

1 に答える 1

1

mysql_*PDOは古いスタイルのdo or die()コードを実行しません。

正しい構文は次のとおりです。

try {
    //Instantiate PDO connection
    $dbh = new PDO("mysql:host=localhost;dbname=db_name", "user", "pass");
    //Make PDO errors to throw exceptions, which are easier to handle
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //Make PDO to not emulate prepares, which adds to security
    $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    $query = "SELECT * FROM `some_table`";

    //Prepare the statement
    $stmt = $dbh->prepare($query);
    //Execute it (if you had any variables, you would bind them here)
    $stmt->execute();

    //Work with results
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        //Do stuff with $row
    }
}
catch (PDOException $e) {
    //Catch any PDOExceptions that were thrown during the operation
    die("An error has occurred in the database: " . $e->getMessage());
}

主題をよりよく理解するために、 PDOマニュアルを読む必要があります。

于 2012-06-25T19:19:34.733 に答える