我在mysqli预备声明
中遇到以下奇怪问题这是我的示例查询和参数
SELECT * from ecf_request WHERE id > ? OR id < ?
...
$stmt->bind_param("ii", $id, $id1); //5, 10
当我仅使用=
条件时,它工作正常,但对于>
和<
条件,它无效。
我收到"Number of variables doesn't match number of parameters in prepared statement"
错误
在准备好的陈述中是否可以使用大于和小于符号?
我需要为日期过滤条件实现它。两个日期之间的记录。
提前致谢
答案 0 :(得分:6)
一个id
同时不能更大更小。
您同时给出了id >10
和id <10
等条件。
如果您想同时选择id1和id2,请使用SELECT * from ecf_request WHERE id IN(?,?)
代替AND
,如果您想选择其中的所有内容,请使用SELECT * from ecf_request WHERE id BETWEEN ? AND ?
答案 1 :(得分:1)
您可以使用BETWEEN语句。这是一个例子:
SELECT * FROM `ecf_request` WHERE `id` BETWEEN ? AND ?