Php 将值设置为NULL,而不是';空';
我有一个将varhcars和整数添加到数据库行的函数Php 将值设置为NULL,而不是';空';,php,mysql,sql,Php,Mysql,Sql,我有一个将varhcars和整数添加到数据库行的函数 public function addItem($id, $site, $price, $quantity, $condition, $sellerName, $sellerRating, $sellerLocation, $description, $link){ $q = "INSERT INTO tbl_items VALUES( '$id', '$site', $price,
public function addItem($id, $site, $price, $quantity, $condition,
$sellerName, $sellerRating, $sellerLocation, $description, $link){
$q = "INSERT INTO tbl_items VALUES(
'$id',
'$site',
$price,
$quantity,
'$condition',
'$sellerName',
$sellerRating,
'$sellerLocation',
'$description',
'$link',
".time().")";
return mysql_query($q, $this->connection);
}
在某些情况下,我可能会决定将varchar值设置为NULL,但问题是,如果我将字符串NULL作为参数发送,它将始终被视为字符串
e、 g
如何避免NULL在查询中被视为字符串?简单不要引用它,因为
'NULL'
总是一个字符串,NULL
是。。嗯,零
怎么做?使用占位符或准备语句
这将处理任何引用(根据需要)并防止SQL注入攻击。赢
请参阅其中包含的有关编写安全查询的信息,以及mysqli和PDO方法的示例。简单不要引用它,因为
'NULL'
总是一个字符串,NULL
是。。嗯,零
怎么做?使用占位符或准备语句
这将处理任何引用(根据需要)并防止SQL注入攻击。赢
请参阅其中包含的有关编写安全查询的信息以及mysqli和PDO方法的示例。当您尝试将PHP null插入查询字符串时,它将转换为空字符串。由于您的代码到处都在使用
”
,因此如果不重新构建查询字符串,就无法在该字符串中插入实际的sql“null”。当您尝试将PHP null插入查询字符串时,它将转换为空字符串。由于您的代码到处都在使用,
,因此,如果不重新构建查询字符串,就无法在该字符串中插入实际的sql“null”。好的,我刚刚浏览了网上的几篇文章,当我有一个重复的键并且我使用占位符时会发生什么情况?@mk_89与没有占位符的情况相同:)但是,虽然我坚持我的答案作为一般解决方案,但很可能变量,例如$condition已经包含字符串值NULL
(例如$condition=“NULL”
)。请务必解决这个问题。好的,我刚刚浏览了网上的几篇文章,当我有一个重复的键并且我使用占位符时会发生什么?@mk_89与没有占位符时是一样的:)然而,虽然我坚持我的答案作为一般解决方案,但很可能变量,例如,$condition已经包含字符串值NULL
(例如$condition=“NULL”
)。也要确保解决这个问题。
addItem("id1", "site1", 100, NULL, "NULL", "NULL", "NULL", "NULL", "NULL", "NULL",);