我是 Android 新手。我正在尝试从本地主机服务器获取一些数据。我的查询在 phpMyAdmin 上运行良好,但我在 api 中遇到错误。我对 PHP 知之甚少,所以不知道问题是什么。代码:public function saveUserProgress($user_id,$course_id,$topic_id,$quiz_marks){ $output = $this->con->prepare("INSERT INTO user_progress (user_id, course_id, topic_id,quiz_marks) VALUES (?, ?, ?,?) ON DUPLICATE KEY UPDATE user_id=?, course_id=?, topic_id=?, quiz_marks = quiz_marks + ?"); $output->bind_param("iiii",$user_id,$course_id,$topic_id,$quiz_marks); if($output->execute()){ return PROGRESS_SAVED; }else{ return ERROR_OCCUR; } }错误:{"error":true,"message":403}Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
1 回答
HUH函数
TA贡献1836条经验 获得超4个赞
如果如您所说,您的唯一密钥是user_id,course_id那么您不需要在重复密钥上更新它们。您只需要更新剩余的 2 个值。与您要添加的 4 个一起构成 6 个占位符,因此您需要绑定 6 个变量。
$output = $this->con->prepare("INSERT INTO user_progress (user_id, course_id, topic_id,quiz_marks)
VALUES (?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
topic_id=?, quiz_marks = quiz_marks + ?");
$output->bind_param("iiiiii", $user_id, $course_id, $topic_id, $quiz_marks, $topic_id, $quiz_marks);
- 1 回答
- 0 关注
- 157 浏览
添加回答
举报
0/150
提交
取消
