-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));

您可能需要阅读一两个教程来了解如何有效地使用 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 回答