0

ここにこのコードスニペットがあります

if(isset($c) && isset($d)) 
{
echo $qry2;
retrieve(mysqli_query($qry1)) || die(mysqli_error());
ini_set('display_errors', 'On');
retrieve(mysqli_query($qry2)) || die(mysqli_error()) ;
}

条件が真の場合、最初のretrieve()関数のみが呼び出されます。プログラムの制御は、関数が呼び出された次の行に戻るという概念がありました。これは一般に、どのプログラミング言語にも当てはまりますが、ここではそうではありませんecho $qry2。目的の結果が得られた場合、つまりクエリが適切に構築されている場合、追加した理由は、ini_set('display_errors', 'On');表示されていないエラーがないかどうかを確認するためでした。パラメータをretrieve()ifブロック内から? $qry2 を含む関数呼び出しを $qry1 を含む部分の前に移動すると、qry2 のみが表示されます。

4

1 に答える 1

1

あなたの質問であなたが言ったことから、私はそれretrieveが真実の値を返していないとしか思えません。もちろん、実物を見なければ何ともretrieve言えません。ただし、結果セットをループして行の配列を作成し、それを返すと推測する危険があります。

クエリが行を返さない場合はretrieve、空の配列が返される可能性がありますが、これは偽の値です。これにより、スクリプトはdie(mysqli_error())になりますが、クエリにエラーがなかったため、結果は基本的にdie("").

于 2013-09-30T14:49:53.537 に答える