我有一张这样的表
CREATE TABLE test(a int, b int);
表中的值是从动态输入
插入的$ a,$ b(PHP变量)
$query = "UPDATE test set a=$a where b = $b";
pg_query($db, $query);
当$ a为空时(即当用户没有从表中输入表单字段的任何值时),这不起作用。我怎么绕过这个?
答案 0 :(得分:3)
测试$a
是否为空,如果是,则将其设置为null:
$a = ($a == '') ? 'NULL' : "'$a'";
$query = "UPDATE test set a=$a where b='$b'";
不要忘记引用$b
值,它在此处返回错误,直到我引用它。
如果它不为空,我在上面的检查中为$a
添加了引号,所以如果$ a是NULL(空),整数或字符串,它现在可以工作。
答案 1 :(得分:1)
如果$ a为空,$query
将如下所示:
UPDATE test SET a= where b = whatever
您需要将NULL
显式添加到查询字符串中:
UPDATE test SET a=NULL where b = whatever