【发布时间】:2017-01-23 16:29:36
【问题描述】:
我有一个将复选框提交给 PHP PDO 脚本的表单。我有如下代码将值存储到 mysql 表中
$stmt = $dbPDO->prepare("INSERT INTO group_members(g_id, em_id)
VALUES(:g_id,:em_id)
ON DUPLICATE KEY UPDATE g_id = :g_id, em_id = :em_id");
foreach ($_POST['id'] as $email) {
$stmt->bindParam(':g_id', $gid , PDO::PARAM_INT);
$stmt->bindParam(':em_id', $email , PDO::PARAM_STR);
$stmt->execute();
}
PHP 致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[HY093]: Invalid parameter number'
这会产生错误。将多个值插入具有不同值的 mysql 表中的最佳方法是什么?
【问题讨论】:
-
最好的方法是阅读手册
You must include a unique parameter marker for each value you wish to pass in to the statement when you call PDOStatement::execute(). You cannot use a named parameter marker of the same name more than once in a prepared statement, unless emulation mode is on.