(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_delete — 刪除記錄
$connection
,$table_name
,$conditions
,$flags
= PGSQL_DML_EXEC
pg_delete() 會從由 conditions
中的鍵和值指定的表格中刪除記錄。
如果指定了 flags
,pg_convert() 會使用指定的旗標套用至 conditions
。
預設情況下,pg_delete() 會傳遞原始值。值必須經過跳脫處理,或者必須在 flags
中指定 PGSQL_DML_ESCAPE
旗標。PGSQL_DML_ESCAPE
會將參數/識別符號加上引號並進行跳脫處理。因此,表格/欄位名稱會區分大小寫。
請注意,跳脫處理和預備查詢都不能保護 LIKE 查詢、JSON、陣列、正規表達式等。這些參數應根據其上下文進行處理,例如,跳脫/驗證值。
connection
一個 PgSql\Connection 實例。
table_name
要刪除列的表格名稱。
conditions
一個 陣列,其鍵是表格 table_name
中的欄位名稱,其值是要刪除的這些欄位的值。
flags
可以組合任意數量的 PGSQL_CONV_FORCE_NULL
、PGSQL_DML_NO_CONV
、PGSQL_DML_ESCAPE
、PGSQL_DML_EXEC
、PGSQL_DML_ASYNC
或 PGSQL_DML_STRING
。如果 PGSQL_DML_STRING
是 flags
的一部分,則會返回查詢字串。當設定 PGSQL_DML_NO_CONV
或 PGSQL_DML_ESCAPE
時,它不會在內部呼叫 pg_convert()。
成功時返回 true
,失敗時返回 false
。如果透過 flags
傳遞 PGSQL_DML_STRING
,則返回 字串。
版本 | 說明 |
---|---|
8.1.0 | connection 參數現在需要一個 PgSql\Connection 實例;以前,需要一個資源。 |
範例 #1 pg_delete() 範例
<?php
$db = pg_connect('dbname=foo');
// 這種做法有一定的安全性,因為所有值都會被跳脫。
// 然而,PostgreSQL 支援 JSON/陣列。這些類型
// 無論使用跳脫字元還是預備查詢都不安全。
$res = pg_delete($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($res) {
echo "POST 資料已刪除: $res\n";
} else {
echo "使用者可能輸入了錯誤的資料\n";
}
?>