为了账号安全,请及时绑定邮箱和手机立即绑定

在android中使用php从本地主机获取数据失败

在android中使用php从本地主机获取数据失败

PHP
梦里花落0921 2021-12-24 09:29:40
我是 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);


查看完整回答
反对 回复 2021-12-24
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号