現在、このPHPコードがあります。
if (isset($User)){
if (is_object($User)) {
if (!$result_paycon = $mysqli->query("CALL CHECK_CONVENTION(" . $User->id . "," . $row_convention["IDCONVENTION"] . ")")){
printf("Database error");
exit;
}
if (!$result_block = $mysqli->query("SELECT * FROM VIEW_ROOMBLOCK WHERE IDCONVENTION = " . $row_convention["IDCONVENTION"])){
var_dump($result_block);
printf("Database error");
exit;
}
}
}
何をしても、$result ブロックの var ダンプは常に bool(false) です。そして、それに fetch_array を使用する必要がある場合、$result_block が非オブジェクトであることがわかります。ただし、最初のクエリをプロシージャ コールから通常の選択に変更すると問題が解決するようで、コードから完全に削除されます。
両方の呼び出しに対して SQL クエリをエコーしました。SQL に直接プラグインすると、どちらも何かを返します。
私がしていないことはありますか?
編集1:まだ運がありません。ただし、次のようにコードを反転すると:
if (!$result_block = $mysqli->query("SELECT * FROM VIEW_ROOMBLOCK WHERE IDCONVENTION = " . $row_convention["IDCONVENTION"])){
printf("Database error");
exit;
}
if (!$result_paycon = $mysqli->query("CALL CHECK_CONVENTION(" . $User->id . "," . $row_convention["IDCONVENTION"] . ")")){
printf("Database error");
exit;
}
var_dump($result_block);
echo "<br />";
var_dump($result_paycon);
var ダンプから次の情報を取得します。
object(mysqli_result)#4 (5) { ["current_field"]=> int(0) ["field_count"]=> int(10) ["lengths"]=> NULL ["num_rows"]=> int(2) ["type"]=> int(0) }
object(mysqli_result)#5 (5) { ["current_field"]=> int(0) ["field_count"]=> int(2) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }
しかし、前のコードでは、そのうちの 1 つが失敗するだけで、その理由はまだわかりません。
編集 2: 前のコードで、mysqli オブジェクトのエラー プロパティの値を出力しました。私は以下を取得します:
コマンドが同期していません。現在、このコマンドを実行することはできません