PHP Conference Japan 2024

pg_escape_literal

(PHP 5 >= 5.4.4, PHP 7, PHP 8)

pg_escape_literal转义一个用于插入文本字段的字面量

说明

pg_escape_literal(PgSql\Connection $connection = ?, string $data): string

pg_escape_literal() 转义一个用于查询 PostgreSQL 数据库的字面量。它返回一个 PostgreSQL 格式的转义后的字面量。pg_escape_literal() 会在数据前后添加引号。用户不应该添加引号。建议使用此函数代替 pg_escape_string()。如果列的类型是 bytea,则必须使用 pg_escape_bytea() 代替。对于转义标识符(例如表名、字段名),必须使用 pg_escape_identifier()

注意:

此函数具有内部转义代码,也可以与 PostgreSQL 8.4 或更低版本一起使用。

参数

connection

一个 PgSql\Connection 实例。如果未指定 connection,则使用默认连接。默认连接是 pg_connect()pg_pconnect() 建立的最后一个连接。

警告

自 PHP 8.1.0 起,使用默认连接已被废弃。

data

包含要转义的文本的 string

返回值

包含转义后数据的 string

更新日志

版本 说明
8.1.0 connection 参数现在需要一个 PgSql\Connection 实例;之前需要一个资源

范例

示例 #1 pg_escape_literal() 示例

<?php
// 连接到数据库
$dbconn = pg_connect('dbname=foo');

// 读取一个文本文件(包含撇号和反斜杠)
$data = file_get_contents('letter.txt');

// 转义文本数据
$escaped = pg_escape_literal($data);

// 将其插入到数据库中。注意 {$escaped} 周围没有引号
pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', {$escaped})");
?>

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top