1

我有一张这样的桌子

CREATE TABLE test(a int, b int);

表中的值是从动态输入中插入的

$a, $b (PHP 变量)

$query = "UPDATE test set a=$a where b = $b";
pg_query($db, $query);

这在 $a 为空时不起作用(即,当用户没有为表格中的表单字段输入任何值时)。我该如何解决这个问题?

4

2 回答 2

3

测试是否$a为空,如果是,则将其设置为 null:

$a = ($a == '') ? 'NULL' : "'$a'";
$query = "UPDATE test set a=$a where b='$b'";

不要忘记引用该$b值,在我引用它之前它在这里返回错误。

如果它不为空,我在上面的检查中添加了引号$a,所以如果 $a 是 NULL(空)、整数或字符串,它现在可以工作。

于 2012-05-12T04:38:12.847 回答
1

如果 $a 为空,$query将如下所示:

UPDATE test SET a= where b = whatever

您需要显式添加NULL到查询字符串:

UPDATE test SET a=NULL where b = whatever
于 2012-05-12T04:36:21.623 回答