-1

以下のコードが機能しないのはなぜですか?

 $pdo = new PDO('mysql:dbname=_test;host=localhost','root', '');
 $select=$pdo->prepare("SELECT * FROM test WHERE th=:name");
 $select->bindValue(":name","1");
 print_r($select);

$select を印刷すると、次の結果が得られます。

 PDOStatement Object ( [dbh] => PDO Object ( ) [queryString] => SELECT * FROM test   WHERE th=:name )

ありがとう!

4

1 に答える 1

3

たとえば、例外をスローするように PDO を設定して、データベース呼び出しにエラー処理を追加する必要があります。

execute()あなたの現在の問題は、実際にはステートメントではないということです:

$select->bindValue(":name","1");
$select->execute();

その後fetch()、データベースの値を実際に確認するには、結果セットからの結果が必要になります。

while ($row = $select->fetch()) {
  // do something with the data
}

編集: PDO で例外を有効にするには (まだキャッチする必要はありません。システムは未処理の例外エラーをスローします):

$pdo = new PDO('mysql:dbname=_test;host=localhost','root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
于 2014-11-24T19:23:35.603 に答える