<?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」のブール値に何I
1)SQLでエラーをチェックしました:私はphpmyadminとphp(ther own上)で "quotesの有無にかかわらず実行しましたが、どちらの問題文にもエラーはありませんでした。私もバインドせずに非常に単純なSELECT *ステートメントに縮小しようとしたが、それでも失敗します。
2の代わりに$ stmtはをオーバーライドする)割り当てられた固有の変数:エラーに変化がない
3)列名、データ型および制限付きの単語をチェックする:それらはすべて
4をチェックアウト)は有界変数の値をチェックします:それらはすべて私が見つけた何
存在:
を奇妙に、私は問題文1、文2 PROBLEM iはPを削除する場合も同様に、エラーなしで実行されます削除した場合ROBLEM STATEMENT2コードの残りの部分は正常に機能し、コード内の位置を入れ替えると、エラーは常に先頭のステートメントに移動します。
これはなぜ起こっているのでしょうか?
ここで他のスレッドに基づいて、エラーの理由を得るには、 '$ db-> errorInfo()'と '$ db-> errorCode()'を使用してください。 – Swellar
mysqli(私の場合は$接続) - > errnoとエラーはどちらもそれぞれ障害発生時に0と ""を返します –