我有一个
$dummy = 1
$dummy = 2
$dummy = null
和查询并尝试显示
$query = "select * from table1 where sy=2000 AND sy_dummy=$dummy";
echo $query;
然后当$dummy=null
时,我得到了
ERROR: syntax error at or near "order" LINE 2: AND sy_dummy= order by table1 ^
我尝试了$ dummy IS NULL
但是给了我空白页。
我的问题是如何为NULL
添加$dummy
值并给我一些结果应该是.....sy_dummy IS NULL order by table1
不是......sy_dummy= order by table1;
这可能吗?希望你能理解我的问题。
答案 0 :(得分:0)
试试这段代码:
$query="select * from table1 where sy=2000 AND sy_dummy ".(($dummy===null)?'is null':'= '.$dummy);
答案 1 :(得分:0)
我会检查PHP中的null并修改你在php逻辑中形成查询字符串的方式。
这允许您准备语句变量(安全且安全),而不是简单地将它们内联到查询中(可能存在危险并且对SQL Injection开放)
if(!isset($dummy) || $dummy === null)
{
// Form your $query here using sy_dummy IS NULL
}
else
{
// Form your $query here using sy_dummy =, and bind your variables
}
另请查看PDO and Prepare Statements以编写安全,安全的数据库交互。