簡體   English   中英

在android中使用php從本地主機獲取數據失敗

[英]Failed to get data from localhost using php in android

我是 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 

如果你說你的唯一鍵是user_idcourse_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);

您期望的參數多於您嘗試綁定的數量。 您必須處理查詢中的每個問號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM