PHP / MySQL语句。如何将其转换为准备好的声明?

时间:2013-05-08 18:13:22

标签: php mysql prepared-statement

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

我有这个代码,现在需要使用PDO :: bindValue()和PDO :: prepare()将其转换为预准备语句。看一下这些例子,我不知道该怎么做。 :name来自哪里,为什么要将它放在bindValue部分?

2 个答案:

答案 0 :(得分: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));

您可能需要阅读a tutorial或两个,以了解如何有效地使用PDO。 PDO documentation也很不错。

这里的一般想法是放入名称值所在的:name之类的内容,然后传入一个定义name映射到的数组。

答案 1 :(得分:0)

没有无用的标签,它看起来会更好

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

至少你的查询适合屏幕。