我正在使用一个准备好的语句对周期表进行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'");
一切正常
绑定参数与日期一起工作
在带有占位符的查询和带有实际值的查询之间,绝对没有区别。既不能用于日期,也不能用于任何其他数据类型。
因此,你的问题来自任何其他方向。输入数据,数据库中的数据。你越早意识到这一点并停止错怪别人,你的问题就能越早解决。