我需要跳过值,以防它们为空。 我的数据库中的数据看起来很相似:
gender : man
hair : blonde
eyes : blue
figure : slim
gender : woman
hair : blonde
eyes : blue
figure : slim
当我使用此查询时:
SELECT * FROM people WHERE figure = 'slim' AND hair = 'blonde' AND eyes = '' AND gender = 'man';
它什么也没返回给我,因为eyes
是空的。
我从 PHP 表单中获取的数据和空数据都是字段,用户不会填写。
你能帮我一下吗,我该如何解决这个问题? 作为数据库驱动程序,我使用 PDO。
最佳答案
您需要逐一检查这些值:
$sql = "SELECT * FROM people WHERE "
$appender = "";
if ( !empty($gender) )
{
$sql .= ( $appender . " gender = '" . $gender . "'");
$appender = " AND ";
}
if ( !empty($hair) )
{
$sql .= ( $appender . " hair= '" . $hair. "'");
$appender = " AND ";
}
...
...
关于php - 跳过值以防空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21487585/