PHP - 将字符串空转换为空



当从 $_GET 变量中获取值并将其放入具有两个条件的 php 查询中时,我有一个 php 页面:

AND book_id = '$bookid"
AND book_date between coalesce('$bookdate',book_date) AND coalesce('$bookdate',book_date)

问题是这种情况:AND book_date between coalesce('$bookdate',book_date) AND coalesce('$bookdate',book_date)要正常工作,查询需要"$bookdate"= null,并且在检索变量时,将值设置为字符串。

怎么做?

谢谢

您可以使用猫

王运算符:

$bookdate = $_GET['bookdate'] ?: null;

更多信息请点击此处:https://stackoverflow.com/a/1993455/12750122

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

$bookdate = !strlen($bookdate) ? null : $bookdate

或者也许更合适的是来自$_GET...

$bookdate = empty($_GET['bookdate']) ? null : $bookdate

。因为您的变量名称暗示了日期类型值,所以我将假设0值不会被传递或对您的用例无效。 我这样说是因为empty()评估0 true

*在尝试访问/操作超全局元素之前,应检查它们是否存在,以避免收到通知。 (例如 isset()empty()array_key_exists()

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

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

$bookdate = !empty($bookdate) ? $bookdate : null;

相关内容

  • 没有找到相关文章

最新更新