我是 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 關注
- 118 瀏覽
添加回答
舉報
0/150
提交
取消