Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySQL语句。我如何将其转化为一份事先准备好的声明?_Php_Mysql_Prepared Statement - Fatal编程技术网

PHP/MySQL语句。我如何将其转化为一份事先准备好的声明?

PHP/MySQL语句。我如何将其转化为一份事先准备好的声明?,php,mysql,prepared-statement,Php,Mysql,Prepared Statement,我有这段代码,现在需要使用PDO::bindValue()和PDO::prepare()将其转换为准备好的语句。看看这些例子,我不知道该怎么做。:名称来自何处?为什么要将其放在bindValue部分?在您的示例中,它看起来像这样: $query = 'INSERT INTO user_answer (facebook_id, answer_id) VALUES (' . $i . ',' . $randAnswer . ')'; $dbh->exec($query); 您可能需要阅读一两

我有这段代码,现在需要使用PDO::bindValue()和PDO::prepare()将其转换为准备好的语句。看看这些例子,我不知道该怎么做。:名称来自何处?为什么要将其放在bindValue部分?

在您的示例中,它看起来像这样:

$query = 'INSERT INTO user_answer (facebook_id, answer_id) VALUES (' . $i . ',' . $randAnswer . ')';
$dbh->exec($query);
您可能需要阅读一两篇文章,了解如何有效地使用PDO。天气也不错


这里的总体思路是在名称值所在的位置输入
:name
,然后传入一个数组,该数组定义了
name
映射到的内容。

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

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

至少你的查询符合屏幕要求。

我想要一个“像我五岁一样解释”,而不是一个链接。:name是你自己的变量名。例如:你可以在你的sql查询中使用:name,然后在bindValue中使用(“:name”,$i,PDO::PARAM_INT);我来这里是因为我对一些事情感到困惑,我想澄清一下,问一个问题,然后就结束了?你们真是帮了大忙。谢谢。为什么我必须以数组的形式执行它?这就是绑定的方式。常规的
样式占位符仍然需要数组,但不需要标签。
$query = 'INSERT INTO user_answer (facebook_id, answer_id) VALUES (?,?)';
$stmt  = $dbh->prepare($query);
$stmt->execute(array($i,$randAnswer));