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。引用するまで、ここでエラーが返されていました。

null でない場合は上記のチェックに引用符を追加し$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 に答える