php - 跳过值以防空

标签 php mysql pdo

我需要跳过值,以防它们为空。 我的数据库中的数据看起来很相似:

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/

相关文章:

php - 多次打开和关闭 php 标签会增加页面负载吗?

php - 字母ő。哪种 PHP 编码/解码效果最好?

php - 将多个复选框插入表中的两列中

mysql - jsp mysql服务器连接超时

php - PDO 准备语句,正确使用?

php - 给定的 PDO 实例而不是命名空间名称 - PSR 4 Autoloading with composer

php - 无法使用 file_get_contents ('php://input' 检索原始发布数据)

使用 cron 作业检查网络服务器状态的 PHP 脚本

mysql - 使用高偏移量时查询速度相当慢

php - PDO - 动态查询构建