(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_insert — 将数组插入到表中
$connection
,$table_name
,$values
,$flags
= PGSQL_DML_EXEC
pg_insert() 将 values
中的值插入到由 table_name
指定的表中。
如果指定 flags
,则 pg_convert() 使用指定 flag 应用于 values
。
默认情况下 pg_insert() 传递原始值。值必须转义或必须在 flags
中指定 PGSQL_DML_ESCAPE
flag。PGSQL_DML_ESCAPE
引用并转义参数/标识符。因此,表/列名称变得区分大小写。
注意转义和预处理查询都不能保护 LIKE 查询、JSON、Array、Regex 等,这些参数要根据上下文来处理。即转义/验证值。
connection
PgSql\Connection 实例。
table_name
要插入记录的表名。表 table_name
中的列必须至少要有 values
中的单元那么多。
values
array,其键是表 table_name
中的字段名称,其值是要插入的匹配行。
flags
任意数量的 PGSQL_CONV_OPTS
、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
,成功时返回 string。
版本 | 说明 |
---|---|
8.3.0 | 当指定的表无效时,现在会抛出 ValueError 错误;之前触发 E_WARNING 。 |
8.3.0 | 当字段的值或类型不能正确匹配 PostgreSQL 的类型时,现在会抛出 ValueError 或 TypeError 错误;之前触发 E_WARNING 。 |
8.1.0 | 现在返回 PgSql\Result 实例,之前返回 resource |
8.1.0 | 现在 connection 参数接受 PgSql\Connection 实例,之前接受 resource。 |
示例 #1 pg_insert() 示例
<?php
$dbconn = pg_connect('dbname=foo');
// 在某种程度上安全,因为所有值都转义了。