0

PDO を使用して SQLite3 データベースにアクセスする PHP スクリプトで、準備済みステートメントを使用しようとしています。

このクエリの通常のバージョンは期待どおりに機能します。

$q1 = "SELECT COUNT(*) FROM fruits WHERE name='apple'";
echo $db->query($q1)->fetchColumn();

ただし、準備済みステートメントのバージョンでは何も出力されません。

$q2 = "SELECT COUNT(*) FROM fruits WHERE name='?'";
$s = $db->prepare($q2);
$s->execute("apple");
echo $s->fetchColumn();

私は何を間違っていますか?PHP 5.2 と PHP 5.3 の両方で試しましたが、結果は同じでした。

4

1 に答える 1

6

? の前後にアポストロフィを追加する必要はないと思います。配列を使用する必要があります: $s->execute(array("apple"));

于 2009-06-24T03:28:28.783 に答える