我从$ _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,并且在检索变量时,将值设置为字符串。
如何制作?
由于
答案 0 :(得分:0)
在查询中使用之前,您似乎只需要有条件地声明变量。
$bookdate = !strlen($bookdate) ? null : $bookdate
或者更恰当地来自$_GET
......
$bookdate = empty($_GET['bookdate']) ? null : $bookdate
...因为您的变量名称暗示了日期类型值,我将假设0
值不会被传递或对您的用例无效。我这样说是因为empty()
将0
评估为true
。
*在尝试访问/操作它们以避免接收通知之前,应检查超级全局元素是否存在存在。 (例如isset()
或empty()
或array_key_exists()
)
答案 1 :(得分:-1)
在进行sql查询之前检查变量:
$bookdate = !empty($bookdate) ? $bookdate : null;