我有一个SQL查询,其中用户通过搜索表单生成了输入。我现在所拥有的是这个。

// Select some data
$sth = $dbh->prepare("SELECT `id`, `type_code`, `connector_type`, `construction_type`,  `author`, `estimate_lead_time`, `last_update`, `confidence_level`, `start_passband`, `stop_passband`, `low_passband`, `high_passband`
                      FROM `filter_bandpass`
                      WHERE (`start_passband` = $lowfreq AND `stop_passband` = $highfreq)");


我试图让它只允许用户填写$lowfreq并保留$highfreq空白,结果将显示$lowfreq =用户插入数据的所有结果,但是当他们确实为$highfreq结果同时显示。

最佳答案

因此$ highfreq包含数据或为空。然后只需更换

WHERE (`start_passband` = $lowfreq AND `stop_passband` = $highfreq)");




WHERE (`start_passband` = $lowfreq AND (`stop_passband` = $highfreq OR $highfreq = ''))");

关于php - 如果用户在该字段中提供了数据,则在SQL查询中放入IF语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25683250/

10-12 13:46