[英]Prepared statement not executing in PHP but works on SQL console perfectly
function examResult($student_id, $exam_id){
global $conn;
$stmt = $conn->prepare("SELECT SUM(CASE WHEN answers.answered_option=questions.correct_option THEN questions.marks ELSE 0 END) AS obtain, exams.exam_name, exams.total_marks, exams.pass_marks FROM exams INNER JOIN questions ON exams.id=questions.exam_id INNER JOIN answers ON answers.question_id=questions.id WHERE answers.student_id = ? AND exams.id = ? ");
if($stmt){
return 'ok';
$stmt->bind_param('ii', $student_id, $exam_id);
$stmt->execute();
$result = $stmt->get_result();
if($result){
$row = $result->fetch_assoc();
return $row;
}
} else{
return false;
}
}
我從上面的 function 期待“好的”,但它返回錯誤。 這意味着 $stmt 沒有執行。 我的兩個參數 $student_id 和 $exam_id 也很好。
但是,如果我在我的 SQL 控制台中執行它,如下所示,它可以完美運行。
SELECT SUM(CASE WHEN answers.answered_option=questions.correct_option THEN questions.marks ELSE 0 END) AS obtain, exams.exam_name, exams.total_marks, exams.pass_marks FROM exams INNER JOIN questions ON exams.id=questions.exam_id INNER JOIN answers ON answers.question_id=questions.id WHERE answers.student_id = 18 AND exams.id = 24
function examResult($student_id, $exam_id){
global $conn;
$stmt = $conn->prepare("SELECT SUM(CASE WHEN answers.answered_option=questions.correct_option THEN questions.marks ELSE 0 END) AS obtain, exams.exam_name, exams.total_marks, exams.pass_marks FROM exams INNER JOIN questions ON exams.id=questions.exam_id INNER JOIN answers ON answers.question_id=questions.id WHERE answers.student_id = ? AND exams.id = ? ");
if($stmt){
return 'ok';
$stmt->bind_param('ii', $student_id, $exam_id);
$stmt->execute();
$result = $stmt->get_result();
if($result){
$row = $result->fetch_assoc();
return $row;
}
} else{
return false;
}
}
我從上面的 function 期待“好的”,但它返回錯誤。 這意味着 $stmt 沒有執行。 我的兩個參數 $student_id 和 $exam_id 也很好。
但是,如果我在我的 SQL 控制台中執行它,如下所示,它可以完美運行。
SELECT SUM(CASE WHEN answers.answered_option=questions.correct_option THEN questions.marks ELSE 0 END) AS obtain, exams.exam_name, exams.total_marks, exams.pass_marks FROM exams INNER JOIN questions ON exams.id=questions.exam_id INNER JOIN answers ON answers.question_id=questions.id WHERE answers.student_id = 18 AND exams.id = 24
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.