ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp 配列クエリ関連の問題

thinkphp 配列クエリ関連の問題

WBOY
リリース: 2016-06-13 12:24:49
オリジナル
872 人が閲覧しました

thinkphp の配列クエリの問題
thinkphp のクエリ条件は

$map['id'] = I('get.id');<br />$map['cid'] = i('get.cid');<br />$m->where($map)->find();
ログイン後にコピー


です。つまり、生成される SQL ステートメントは
SELECT `id`,`title`,`pic` FROM `news` WHERE `id` = null AND `cid` = null  LIMIT 0,12
ログイン後にコピー


です。取得した ID と CID が空の場合、クエリ条件はまだ存在しますが、値が null になるため、データが見つかりません。
正しいのは、取得した値が空の場合、where 条件は存在しないはずです。存在する、つまり検索 すべての情報がそこにあります。
その理由は何ですか?
-----解決策のアイデア-------------- --------
私は thinkphp を使ったことはありませんが、同様の問題を何度も見たことがあります。これはおそらく彼のバグの 1 つです。
彼のコードを変更できない場合は、次のことを行ってください。最初に前処理することができます
$map['id'] = I('get.id');<br />$map['cid'] = i('get.cid');<br />$map = array_diff($map, array('')); //过滤掉空元素<br />$m->where($map)->find();
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート