(no subject)

Dec 12, 2014 23:17

Две фишки про (my)SQL, которые вполне стоит записать.

1. Необязательные параметры.
На старой работе, куда я вернулся неделю назад, применяется первый прототип safemysql, без некоторых плейсхолдеров, в частности ?p

Что подтолкнуло меня использовать для необязательных параметров куда более красивый код

$sql = "SELECT * FROM table
WHERE foo = ?i
AND (?s = '' OR bar = ?s)";
$data = $db->getAll($sql, $foo, $bar, $bar);

Соответственно, если в $bar передать пустую строку, то фильтр по bar будет пропущен, а если не пустую - то задействован!

2. NULL safe comparison:
Работает наоборот, со стандартной safemysql, которою один упорный чувак еще в самом начале уговорил меня переделать так, чтобы пхпешный NULL транслировался в SQL-ный.

$sql = "SELECT * FROM table WHERE foo <=> ?i";
$data = $db->getAll($sql, $foo);

$foo может быть как нулл, так и не нулл - найдется всё!
Previous post Next post
Up