私は最近、あなたがPDOにnull値をバインドできることを発見した:PDOで "not null"をバインドしますか?
$stmt = $db->prepare('SELECT * FROM foo WHERE bar = :bar');
$stmt->execute(array(':bar'=>null));
$foo = $stmt->fetchAll(PDO::FETCH_OBJ);
はこれが正常bar
列がnullのデータベースからすべてのfoo
をフェッチします。
しかし、私は今逆のことをしたいと思います。 bar
列がでなく、でない列をすべて取得したいとします。
bar = :bar
をbar IS NOT NULL
に置き換えることができます。しかし、私はそれを避けたいのではなく、代わりに用意されたステートメントを使って行います。なぜなら、ときどきクエリ文字列を動的に作成しなければならないため、手動で行う必要があるからです。
これは可能ですか?
[pixie](https://github.com/usmanhalalit/pixie)のようなクエリビルダライブラリを使用すると、簡単に動的クエリを作成したり独自のクエリビルダを作成することができます – Gal
2つのステートメントを作成します。 'IS NOT NULL'を使う場所があります。 PDOはパラメータを**引用します**。 – Mjh
@Mjh PDO/MySQLはパラメータを値*として扱います。関連する引用がある場合とない場合があります。理想的には、ネイティブのプリペアドステートメントを使用している場合は、引用符は必要ありません。これは単に構文の一部として、または値としてパラメータを扱う点で違います。 – deceze