PHP PDOデータベースクラスには、値がわからないときに演算子を "="から "IS"に変更する標準または最良の方法がありますか渡すかどうかはNULLかどうか。ここに私が意味するものの例があります。変数演算子を必要とするMySQLクエリの構築PHP PDO
私には2つの変数があります。私は一致する結果の数が欲しいです。場合によっては、変数の一方または両方がNULLになることがあります。しかし、MySQLはNULLを見つけるために別の演算子を必要とします(IS NULL)。
私は現在、ちょうどオペレータのために別の変数を作成していると私は、クエリを構築するとき、私はそれはようにして注入:
// First create a variable "=" or "is" depending on whether var1 and var2 are NULL or not
if($var1 == NULL) $var1_operator = "IS";
else $var1_operator = "=";
if($var2 == NULL) $var2_operator = "IS";
else $var2_operator = "=";
// Build the query
$query = 'SELECT count(*) as count FROM table
WHERE var1 '.$var1_operator.' :var1 AND var2 '.$var2_operator.' :var2';
// Conduct the query
$prepare = $db_connection->prepare($query);
$prepare->bindValue(':var1', $var1, PDO::PARAM_STR);
$prepare->bindValue(':var2', $var2, PDO::PARAM_STR);
$prepare->execute();
$results = $prepare->fetch();
これを行うための別の方法はありますか?これは、値がNULLで実際は文字列でなくても、PARAM_STRを使用してbindValueに作用します。クエリは正しい値のカウントを返します。それを行うためのより良いプラクティスがあるかどうかは分かりません。
これは、PDO – Gunaseelan