-2

可能重复:
如何防止 PHP 中的 SQL 注入?

我有以下 MySQL 查询:

if($obj->{'parentId'} == null){
    $parentID = 'NULL'; 
} else{
    $parentID = $obj->{'parentId'};
}

$q = 'UPDATE tasks SET 
    Name = "'.$obj->{'Name'}.'", 
    Cls = "'.$obj->{'Cls'}.'", 
    parentId = '.$parentID.', 
    PhantomId = '.$obj->{'PhantomId'}.', 
    PhantomParentId = '.$obj->{'PhantomParentId'}.', 
    leaf = "'.$leaf.'" WHERE Id = "'.$obj->{'Id'}.'"';

问题是,如果我的任何非字符串值为空,则整个查询都会引发错误。$obj->{'PhantomId'}例如,当没有任何附加库的情况下为空时,如何修复它崩溃?

4

1 回答 1

3

最好考虑选择退出绑定参数。但是如果你仍然想构造 SQL 查询使用条件

$q = "UPDATE ...";
...
if (!empty($obj->{'PhantomId'})) {
    $q .= ", PhantomId = '" . $obj->{'PhantomId'}. "'";
}
...
于 2013-01-15T02:10:24.303 回答