PHP

pg_query

pg_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_query - 执行查询

描述

resource pg_query ([ resource $connection ], string $query )

pg_query()query在指定的数据库上执行connection。在大多数情况下,pg_query_params()应该是首选。

如果发生错误并FALSE返回错误,则可以使用pg_last_error()函数检索错误的详细信息(如果连接有效)。

注意:虽然connection可以省略,但不推荐使用,因为它可能是难以在脚本中找到错误的原因。

注意:这个函数过去被称为pg_exec()。由于兼容性原因,pg_exec()仍然可用,但鼓励用户使用更新的名称。

参数

connection

PostgreSQL数据库连接资源。如果connection不存在,则使用默认连接。默认连接是pg_connect()或pg_pconnect()所做的最后一个连接。

query

要执行的SQL语句或语句。当多个语句传递给函数时,它们会自动作为一个事务执行,除非查询字符串中包含明确的BEGIN / COMMIT命令。但是,不建议在一次函数调用中使用多个事务。

警告

用户提供的数据的字符串插值非常危险,很可能导致SQL注入漏洞。在大多数情况下,应首选pg_query_params(),将用户提供的值作为参数传递,而不是将它们替换为查询字符串。

任何直接替换为查询字符串的用户提供的数据都应该正确转义。

返回值

成功或FALSE失败时的查询结果资源。

例子

Example #1 pg_query() example

<?php $conn = pg_pconnect("dbname=publisher" if (!$conn) {   echo "An error occurred.\n";   exit; } $result = pg_query($conn, "SELECT author, email FROM authors" if (!$result) {   echo "An error occurred.\n";   exit; } while ($row = pg_fetch_row($result)) {   echo "Author: $row[0]  E-mail: $row[1]";   echo "<br />\n"; }   ?>

Example #2 Using pg_query() with multiple statements

<?php $conn = pg_pconnect("dbname=publisher" // these statements will be executed as one transaction $query = "UPDATE authors SET author=UPPER(author) WHERE id=1;"; $query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;"; $query .= "UPDATE authors SET author=NULL WHERE id=3;"; pg_query($conn, $query ?>