0

我在 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"错误

是否可以在准备好的语句中使用大于和小于符号?

我需要为日期过滤条件实现它。两个日期之间的记录。

提前致谢

4

2 回答 2

6

一个人id不能同时对自己更大和更小。你同时给出了一个id >10条件id <10

如果您希望同时选择 id1 和 id2 ,请使用SELECT * from ecf_request WHERE id IN(?,?)而不是AND如果您想选择介于两者之间的所有内容,请使用SELECT * from ecf_request WHERE id BETWEEN ? AND ?

于 2012-07-23T06:33:42.293 回答
1

您可以使用 BETWEEN 语句。这是一个例子:

SELECT * FROM `ecf_request` WHERE `id` BETWEEN ? AND ?
于 2012-07-23T06:40:27.210 回答