<?php
require_once 'functions.php';
try{
$stmt=$connection->prepare("
SELECT ACT_ID, NAME, COST, DESCRIPTION, EXTRA_DETAILS, REFID,IMAGE
FROM ACTIVITIES
WHERE ACT_ID = ?
");
$stmt->bind_param("i",$_GET['id']);
$stmt->execute();
$result=$stmt->get_result();
$actData=getAllData($result);
if (isset($_SESSION["user_id"]) && $_SESSION["user_id"] != ""){
$stmt=$connection->prepare("
SELECT id
FROM google_users
WHERE id=? AND gender IS NOT NULL
");
$stmt->bind_param("i",$_SESSION['user_id']);
$stmt->execute();
if ($stmt->fetch()){
$actData[0]["HAS_USER_INFO"]=TRUE;
}
//PROBLEM STATEMENT1##############################
$stmt=$connection->prepare("
SELECT `REG_ID`
FROM `ACTIVITY_REGISTRATION`
WHERE `USER_ID` = ? AND `ACTIVITY` =?
");
$stmt->bind_param("ii",$_SESSION['user_id'],$_GET['id']);
$stmt->execute();
if ($stmt->fetch()) {
$actData[0]["REGISTERED"]=TRUE;
}
}
//PROBLEM STATEMENT2#########################3
$stmt=$connection->prepare("
SELECT O.`COST`, O.`DESCRIPTION`, O.`OPTION_ID`
FROM `ACTIVITIES` A, `ADD_OPTIONS` O
WHERE `ACT_REF` = `REFID` AND `ACT_REF` = ?
");
$stmt->bind_param("s",$actData[0]["REFID"]);
$stmt->execute();
$result=$stmt->get_result();
$opData=getAllData($result);
}catch(Exception $e){
echo $e->getMessage();
}
$stmt->close();
?>
我已經越來越致命錯誤運行正常被拋出一個致命錯誤:調用布爾成員函數bind_param()上的「問題語句2」爲什麼當陳述自己
我已經完成:
1)檢查SQL的錯誤:我運行它在phpmyadmin以及在PHP(自己)有和沒有``引號,並沒有任何問題陳述的錯誤。我也嘗試將它們減少到非簡單的SELECT *語句而沒有綁定,它仍然失敗。
2)分配的唯一變量,而不是覆蓋$語句:錯誤
3)沒有變化檢查列名,數據類型和限制的話:他們都檢查出
4)檢查界變量的值:它們都存在
我發現了什麼:
奇怪的是,如果我刪除問題語句1,問題的聲明2將運行沒有錯誤,同樣的,如果我除去對ROBLEM STATEMENT2代碼的其餘部分功能正常,如果我在代碼中交換他們的位置,錯誤總是會發送到前導語句。
有誰知道爲什麼會發生這種情況?
基於其他線程,使用'$ db-> errorInfo()'和'$ db-> errorCode()'來獲得錯誤原因。 – Swellar
mysqli(在我的情況下爲$ connection) - > errno和error分別在失敗點返回0和「」 –