-1
$query = 'INSERT INTO user_answer (facebook_id, answer_id) VALUES (' . $i . ',' . $randAnswer . ')';
$dbh->exec($query);

私はこのコードを持っており、PDO::bindValue() とおそらく PDO::prepare() を使用して準備済みステートメントに変換する必要があります。例を見ると、これについてどうすればよいかわかりません。:name はどこから来て、なぜ bindValue 部分に入れているのですか?

4

2 に答える 2

1

あなたの場合、次のようになります。

$st = $dbh->prepare("INSERT INTO user_answer (facebook_id, answer_id) VALUES (:facebook_id, :answer_id)");

$st->execute(array('facebook_id' => $i, 'answer_id' => $randAnswer));

チュートリアルを 1 つか 2 つ読んで、PDO を効果的に使用する方法を理解することをお勧めします。PDOのドキュメントも非常に優れています。

ここでの一般的な考え方は、名前の値がどこにあるかなどを入れてから、何にマップする:nameかを定義する配列を渡すことです。name

于 2013-05-08T18:27:08.923 に答える
0

無駄なラベルがない方が見栄えが良い

$query = 'INSERT INTO user_answer (facebook_id, answer_id) VALUES (?,?)';
$stmt  = $dbh->prepare($query);
$stmt->execute(array($i,$randAnswer));

少なくともクエリは画面に収まります。

于 2013-05-08T21:17:08.880 に答える