您好,我想知道如何转换以下代码以使用BindValues并完成相同的工作。
$sql = "SELECT * FROM documents WHERE 1";
if (!empty($topic)) {
$sql .= " AND topic = '$topic' ";
}
if (!empty($date )) {
$sql .= " AND date LIKE '%$date%' ";
}
WHERE子句只应用于填充的输入
所以我的问题是如何将此代码转换为以下查询
$sql = new page($pages "SELECT *
FROM table
WHERE topic LIKE :topic
OR date LIKE :date ", $option);
$sql ->BindValue(':topic ', $_POST['topic '], PDO::PARAM_STR);
$sql ->BindValue(':date ', $_POST['date '], PDO::PARAM_STR);
最佳答案
SELECT * FROM table
WHERE (:topic is null or topic LIKE :topic)
AND (:date is null or date LIKE :date)
关于php - PDO如何检查输入是否为空而不使用WHERE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31755735/