如何动态地将NULL插入postgres表?

时间:2012-05-12 04:33:47

标签: php database postgresql null

我有一张这样的表

CREATE TABLE test(a int, b int);

表中的值是从动态输入

插入的

$ a,$ b(PHP变量)

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

当$ a为空时(即当用户没有从表中输入表单字段的任何值时),这不起作用。我怎么绕过这个?

2 个答案:

答案 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