我有一个
$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;
这可能吗?希望你能理解我的问题。
我会检查PHP中的null,并修改如何在PHP逻辑中形成查询字符串。
这允许您准备语句变量(安全可靠),而不是简单地将它们内联到查询中(潜在危险且对SQL注入开放)
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和Prepare Statements,以编写安全、可靠的数据库交互。
试试这个代码:
$query="select * from table1 where sy=2000 AND sy_dummy ".(($dummy===null)?'is null':'= '.$dummy);