绑定参数不适用于日期


bind parameters does not work with dates

我正在使用一个准备好的语句对周期表进行select:

$query_period = $mysqli->prepare("SELECT * FROM period WHERE date_start<= '?' AND date_end >='?'");
$query_period->bind_param('ss',$date_start,$date_end);

和执行给出一个参数号错误:

警告:mysqli_stmt::bind_param(): 变量数量不匹配准备语句中的参数数量

当我删除?周围的"时,错误不会发生。这样的:

$query_period = $mysqli->prepare("SELECT * FROM period WHERE date_start<= ? AND date_end >=?");

,而且查询不匹配正确的结果。我该怎么做呢?

因为它是这样的

$query_period = $mysqli->query("SELECT * FROM period WHERE date_start<= '$date_start' AND date_end >='$date_end'");

一切正常

绑定参数与日期一起工作

在带有占位符的查询和带有实际值的查询之间,绝对没有区别。既不能用于日期,也不能用于任何其他数据类型。

因此,你的问题来自任何其他方向。输入数据,数据库中的数据。你越早意识到这一点并停止错怪别人,你的问题就能越早解决。