たとえば、
$db->query("SET NAMES UTF8");
if($db->real_query("call sp_test()")){
echo 'bp'; result = $ db-> store_result()){
}} while($> next_result());結果セット、2 bp と 2 つの結果セットが出力されます 3 bp がエコーされますが、ストレージを書いてステートメントを直接書かないと正常になり、もう 1 つありません アドバイスをお願いします。 !
ディスカッションへの返信(解決策)
これって普通じゃないですか?そうでなければ、if($result = $db->store_result()){ は何をしているのでしょうか?
これって普通じゃないですか?そうでなければ、if($result = $db->store_result()){ は何をしているのでしょうか?
こんにちは、PHP で直接ステートメントを書くと、 select 1;select 2; のように 2 bp と入力されます。 なぜこれですか? 3 つの
php データベース関数は select 1;select 2; 形式のクエリをサポートしていないため、参照システムとして使用できません
do{ if($result = $db->store_result()){ } }while($db->next_result());のようなコード構造が必要です。ストアド プロシージャの結果セットがバグであると思われる場合は、php バグ Web サイトにアクセスして苦情を申し立てることができます。
do{ if($result = $db->store_result()){ } }while($db->next_result());のコード構造は次のようになりますストアド プロシージャの結果セットが必要です。バグだと思われる場合は、php バグ Web サイトにアクセスして苦情を申し立てることができます。 ただし、修正する前にこれを行う必要があります
ありがとうございました
なぜなら、エコーは if($result = $db->store_result()){ の前に書かれており、結果があるかどうかは依存します。 on if ($result = $db->store_result()){ の判定結果が分かっているので、結果が 2 つあるはずの場合、if を 3 回判定する必要があり、これは先ほどの 3 倍の bp です
$i = 1;$max = 2;while(true) { echo "A"; // 这里肯定会输出3个A if($i > $max) { break; } $i++; }
do{ if($result = $db->store_result()){ } }while($db->next_result());のようなコード構造はストアド プロシージャの結果セットを読み取る必要があるため、バグだと思われる場合は、PHP バグ Web サイトにアクセスして苦情を申し立てることができます。
それ以上ない場合、戻り値は空(null)
$db->store_result() クエリ結果リソースを返す
無い場合もっと見る 戻り値が空(null)の場合
それは本当に false です。PHP は false を返すことができます。
if で判断されるのは $result の値だけです。 !