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