PHP Conference Japan 2024

pg_delete

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_delete 删除记录

描述

pg_delete(
    PgSql\Connection $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_NULLPGSQL_DML_NO_CONVPGSQL_DML_ESCAPEPGSQL_DML_EXECPGSQL_DML_ASYNCPGSQL_DML_STRING 组合。如果 PGSQL_DML_STRINGflags 的一部分,则返回查询字符串。当设置 PGSQL_DML_NO_CONVPGSQL_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";
}
?>

参见

  • pg_convert() - 将关联数组值转换为适合 SQL 语句的形式

添加注释

用户贡献的笔记

此页面没有用户贡献的笔记。
To Top