-4

ユーザーの履歴を取得する必要があり、データが相互に依存する 4 つのテーブルがあります。ループを使用してデータを取得できますが、代わりに「where IN ()」句を使用し、前のクエリの出力を内破します。ただし、「WHERE IN()」に提供するリストが空の場合、エラーが返されます。IN() を空にすることはできませんか?

4

2 に答える 2

1

次のような空の値を先頭に追加できます。IN (0,your values here)

于 2012-08-17T18:21:39.867 に答える
1

IN句の配列を内破するとき、私は2つのことのいずれかを行います

1:クエリを実行する必要があるかどうかを確認します

if(!empty($some_array)) {
    //run mysql query
}
else {
   // if you need to do something if the array is empty, such as error or set some defaults, do it here
}

2:データベースに存在しない配列イニシライザーの値(たとえば、自動インクリメンタルIDに基づいて選択する場合、デフォルトの配列値としてゼロを使用して、空のデータセットの問題を停止します。ゼロは決して発生しないためです。私のID列にあります)。

$some_array = array(0);
于 2012-08-17T18:23:31.403 に答える