PHP-将字符串空转换为空

PHP-将字符串空转换为空,php,string,null,Php,String,Null,当从$\u get variables获取值并将其放入php查询时,我有一个php页面,有两个条件: AND book_id = '$bookid" AND book_date between coalesce('$bookdate',book_date) AND coalesce('$bookdate',book_date) 问题是这种情况:和book_日期在合并'$bookdate',book_日期和合并'$bookdate',book_日期之间 要工作,查询需要“$bookdate”=n

当从$\u get variables获取值并将其放入php查询时,我有一个php页面,有两个条件:

AND book_id = '$bookid"
AND book_date between coalesce('$bookdate',book_date) AND coalesce('$bookdate',book_date)
问题是这种情况:和book_日期在合并'$bookdate',book_日期和合并'$bookdate',book_日期之间 要工作,查询需要“$bookdate”=null,在检索变量时,将值设置为字符串

怎么做这个


谢谢

在进行sql查询之前检查变量:


$bookdate=!空$bookdate$记账日期:空

在查询中使用之前,您似乎只需要有条件地声明变量

$bookdate = !strlen($bookdate) ? null : $bookdate
或者更恰当地说,从$\u GET

…因为变量名暗示了日期类型值,所以我假设0值不会被传递,或者对于您的用例无效。我之所以这样说,是因为empty将0计算为true

*在尝试访问/操作超全局元素以避免收到通知之前,应检查它们是否存在。e、 g.存在isset或empty或array_key_


最终,您不应该直接向查询中注入变量。您应该使用准备好的语句,并将变量绑定到占位符。

您真的希望变量为null,或者如果为空,则排除条件吗?我找到了一个解决方案。在page1.php中,通过获取大量变量来查看所有数据。在page2.php中,有一个表单可以为$date1和$date2应用过滤器。将值放入文件D1时,该值将复制到文件D2中。在此模式下,真正应用where条件。
$bookdate = empty($_GET['bookdate']) ? null : $bookdate