我创建了一些用于检索数据的函数。
查询结果必须取决于输入值。输入值位于变量$start & $end
中。
但是我的代码返回所有不基于输入值的数据。
这意味着变量$start & $end
没有值(读取器为空)。
function tryme($start, $end) {
$query = $this->db->query("
SELECT b.liId, r.status
FROM raws r
LEFT JOIN books b ON r.rawsId = b.booksId
GROUP BY b.booksId
HAVING
SUM((b.start < '$start' AND b.done < '$start')
OR
(b.start > '$end' AND b.done > '$end')) = COUNT(*)
");
return $query->result_array();
}
然后我用固定值修改代码,结果如预期。
HAVING
SUM((b.start < '18-04-2022' AND b.done < '18-04-2022')
OR
(b.start > '19-04-2022' AND b.done > '19-04-2022')) = COUNT(*)
");
那么究竟是什么错误,如何使用变量呢?
1条答案
按热度按时间llycmphe1#
变量
$start
和$end
在查询字符串中没有展开。将查询字符串赋给变量并打印出来以进行确认。也就是说,使用绑定变量而不是插入字符串: