Postgresql

插入不帶引號的空值

  • May 6, 2021

我正在創建一個依賴於 PostgreSQL 的 PHP 應用程序。現在我有這個查詢:

$query= 'INSERT INTO "users" ("name", "username", "email", "phone") VALUES (\''. $name .'\', \''. $username .'\', \''. $email.'\', '. $phone .')';

$email$phone並且$name值可以為空。

當我執行這個查詢時,我得到一個語法錯誤。

所以我的問題是:要插入一個空值,我必須手動寫入空值還是我在查詢中遺漏了什麼?

編輯:

似乎我被迫將 null 寫為值。

根本不要使用這個語句。您對 SQL 注入持開放態度。

改用準備好的語句

pg_prepare($pgconn, 'my_insert', "INSERT ... VALUES ($1, $2, ...)");
pg_query($pgconn, 'my_insert', array( $name, $username, ...));

PHP手冊pg_query關於:

這個函式曾經被呼叫pg_exec()pg_exec()出於兼容性原因,它仍然可用,但鼓勵使用者使用較新的名稱。

有關的:

引用自:https://dba.stackexchange.com/questions/69388