(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";
}
?>