PostgreSQL 数据库函数库

发表于:2007-07-14来源:作者:点击数: 标签:
Postgres 数据库是由柏克莱大学电脑科学系所 开发 的数据库系统,为类关联式数据库的先驱。它提供 SQL92/SQL3 语法。PostgreSQL 是公开使用的免费系统。更多细节可在 http://www.PostgreSQL.org 站上看到。 在 phpWizard .net 网站上也有用 Browser 管理 Pos

    Postgres 数据库是由柏克莱大学电脑科学系所开发的数据库系统,为类关联式数据库的先驱。它提供 SQL92/SQL3 语法。PostgreSQL 是公开使用的免费系统。更多细节可在 http://www.PostgreSQL.org 站上看到。
    在 phpWizard.net 网站上也有用 Browser 管理 PostgreSQL 的套装程序 PostgresAdmin 。可以用它来轻松管理 PostgreSQL 数据库。
    在公元 1998 年的 PostgreSQL 6.3 版之后,可以使用 UNIX 上的 domain sockets。postmaster 加上参数 -i 就可以使用,PostgreSQL 系统会用到 /tmp/.s.PGSQL.5432 的文件。
    下面为使用 LOB (Large Object) 的例子
<?php
$database = pg_Connect ( "" , "" , "" , "" , "jacarta" );
pg_exec ( $database , "begin" );
$oid = pg_locreate ( $database );
echo ( "$oid \n " );
$handle = pg_loopen ( $database , $oid , "w" );
echo ( "$handle \n " );
pg_lowrite ( $handle , "gaga" );
pg_loclose ( $handle );
pg_exec ( $database , "commit" )
pg_exec ( $database , "end" )
?>

pg_Close: 关闭 PostgreSQL 服务器连接。
pg_cmdTuples: 取得被 SQL 指令影响的资料笔数。
pg_Connect: 打开 PostgreSQL 服务器连接。
pg_DBname: 取得目前的数据库名称。
pg_ErrorMessage: 返回错误信息。
pg_Exec: 执行 query 指令。
pg_Fetch_Array: 返回数组资料。
pg_Fetch_Object: 返回类资料。
pg_Fetch_Row: 返回单列的各字段。
pg_FieldIsNull: 检查字段是否有资料。
pg_FieldName: 返回指定字段的名称。
pg_FieldNum: 取得指定字段的行数。
pg_FieldPrtLen: 计算可列示的长度。
pg_FieldSize: 计算指定字段的长度。
pg_FieldType: 获得目前字段的类型。
pg_FreeResult: 释放返回占用内存。
pg_GetLastOid: 取得最后的类代码。
pg_Host: 取得连接机器名称。
pg_loclose: 关闭大型类。
pg_locreate: 建立大型类。
pg_loopen: 打开大型类。
pg_loread: 读取大型类。
pg_loreadall: 读取大型类并输出。
pg_lounlink: 删除大型类。
pg_lowrite: 读取大型类。
pg_NumFields: 取得返回字段的数目。
pg_NumRows: 取得返回列的数目。
pg_Options: 取得连接机器选项。
pg_pConnect: 打开 PostgreSQL 服务器持续连接。
pg_Port: 取得连接机器埠号。
pg_Result: 取得查询 (query) 的结果。
pg_tty: 取得连接机器终端机。

pg_Close
关闭 PostgreSQL 服务器连接。
语法: boolean pg_close(int connection);
返回值: 布尔值
函数种类: 数据库功能
内容说明: 本函数关闭与 PostgreSQL 服务器的连接。参数 connection 为连接代码。成功返回 true、失败返回 false 值。

pg_cmdTuples
取得被 SQL 指令影响的资料笔数。
语法: int pg_cmdtuples(int result_id);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来取得 PostgreSQL 的 SQL 指令所影响的资料笔数,这些 query 指令包括 INSERT、UPDATE 与 DELETE 等。返回值为影响的笔数,若没有资料受影响则返回 0。
使用范例
本例为部份的程序
<?php
$result = pg_exec($conn, "INSERT INTO verlag VALUES ('Autor')");
$cmdtuples = pg_cmdtuples($result);
echo $cmdtuples." 笔资料受影响<p>\n";
?>

pg_Connect
打开 PostgreSQL 服务器连接。
语法: int pg_connect(string [host], string [port], string [options], string [tty], string database);
返回值: 整数
函数种类: 数据库功能
内容说明
本函数打开与 PostgreSQL 服务器的连接。参数 host 表服务器名称。参数 port 为连接埠。参数 options 为选项。参数 tty 为终端机。参数 database 为数据库名。成功返回连接代号、失败返回 false 值。
使用范例
<?
pg_connect("dbname=testdb user=wilson password=haha port=5433");
// 以下略
?>
参考: pg_pConnect()

pg_DBname
取得目前的数据库名称。
语法: string pg_dbname(int connection);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数用来取得 PostgreSQL 目前使用的数据库 (database) 名称。参数 connection 为连接代码。

pg_ErrorMessage
返回错误信息。
语法: string pg_errormessage(int connection);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数可以取得 PostgreSQL 服务器的错误信息。参数 connection 为连接代码。

pg_Exec
执行 query 指令。
语法: int pg_exec(int connection, string query);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来执行指定的 query 指令。参数 connection 为连接代码。参数 query 为欲执行的指令。

pg_Fetch_Array
返回数组资料。
语法: array pg_fetch_array(int result, int row);
返回值: 数组
函数种类: 数据库功能
内容说明: 本函数用来将查询结果 result 拆到数组变量中。若 result 没有资料,则返回 false 值。参数 result 为使用 pg_Exec() 所返回的代码值。参数 row 为列数。
使用范例
<?php
$conn = pg_pconnect("","","","","publisher");
if (!$conn) {
echo "错误, 无法连接\n";
exit;
}
$result = pg_Exec($conn, "SELECT * FROM authors");
if (!$result) {
echo "错误, 无法查询\n";
exit;
}
$arr = pg_fetch_array($result, 0);
echo $arr[0]." <- array\n";
$arr = pg_fetch_array ($result, 1);
echo $arr["author"] . " <- array\n";
?>

pg_Fetch_Object
返回类资料。
语法: object pg_fetch_object(int result, int row);
返回值: 类
函数种类: 数据库功能
内容说明: 本函数用来将查询结果 result 拆到类变量中。若 result 没有资料,则返回 false 值。参数 result 为使用 pg_Exec() 所返回的代码值。参数 row 为列数。
使用范例
<?php
$database = "verlag";
$db_conn = pg_connect("localhost", "5432", "", "", $database);
if (!$db_conn): ?>
<b>无法连上 <? echo $database ?> 数据库</b><?php
exit;
endif;$qu = pg_exec ($db_conn, "SELECT * FROM verlag ORDER BY autor");
$row = 0;
while ($data = pg_fetch_object ($qu, $row)):
echo $data->autor." (";
echo $data->jahr ."): ";
echo $data->titel."<BR>";
$row++;
endwhile; ?>
<pre><?php
$fields[] = Array("autor", "Author");
$fields[] = Array("jahr", " Year");
$fields[] = Array("titel", " Title");
$row = 0;
while ($data = pg_fetch_object($qu, $row)):
echo "<hr><p>\n";
reset ($fields);
while (list (,$item) = each($fields)):
echo $item[1].": ".$data->$item[0]."\n";
endwhile;
$row++;
endwhile;
echo "<p><hr>"; ?>
</pre><?php
pg_freeResult($qu);
pg_close($db_conn);
?>

pg_Fetch_Row
返回单列的各字段。
语法: array pg_fetch_row(int result, int row);
返回值: 数组
函数种类: 数据库功能
内容说明: 本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引,第一个的索引值是 0。若 result 没有资料,则返回 false 值。参数 row 表列数。
使用范例
<?php
$conn = pg_pconnect("","","","","publisher");
if (!$conn) {
echo "连接失败\n";
exit;
}
$result = pg_Exec($conn, "SELECT * FROM authors");
if (!$result) {
echo "查询失败\n";
exit;
}
$row = pg_fetch_row($result, 0);
echo $row[0] . " <- row\n";
$row = pg_fetch_row($result, 1);
echo $row[0] . " <- row\n";$row = pg_fetch_row($result, 2);
echo $row[1] . " <- row\n";
?>
参考: pg_Fetch_Array() pg_Fetch_Object() pg_Result()

pg_FieldIsNull
检查字段是否有资料。
语法: int pg_fieldisnull(int result, int row, mixed field);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可检查指定的字段是否有资料。参数 result 为查询结果代码。参数 row 为指定列数,第一个的索引值是 0。参数 field 为指定的字段。返回 0 表示有资料,返回 1 表示无资料 (Null)。

pg_FieldName
返回指定字段的名称。
语法: string pg_fieldname(int result, int field);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数用来取得指定字段的名称。参数 result 为查询结果代码。参数 field 为指定的字段,第一栏为 0。

pg_FieldNum
取得指定字段的行数。
语法: int pg_fieldnum(int result, mixed field);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来取得指定字段的行数。参数 result 为查询结果代码。参数 field 为指定的字段,第一栏为 0。若有错误则返回 -1 值。

pg_FieldPrtLen
计算可列示的长度。
语法: int pg_fieldprtlen(int result, int row, mixed field);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来取得指定字段的可列示字符长度。参数 result 为查询结果代码。参数 row 表指定的列。参数 field 为指定的字段,第一栏为 0。若有错误则返回 -1 值。

pg_FieldSize
计算指定字段的长度。
语法: int pg_fieldsize(int result, mixed field);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来取得指定字段的长度 (位组)。参数 result 为查询结果代码。参数 field 为指定的字段,第一栏为 0。若有错误则返回 -1 值。

pg_FieldType
获得目前字段的类型。
语法: string pg_fieldtype(int result, mixed field);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数可以得到目前所在字段的类型格式。返回的字符串为字段的类型,包括了 int、real、string....等等。参数 result 为查询结果代码。参数 field 为指定的字段,第一栏为 0。若有错误则返回 -1 值。

pg_FreeResult
释放返回占用内存。
语法: boolean pg_freeresult(int result);
返回值: 布尔值
函数种类: 数据库功能
内容说明: 本函数可以释放目前 PostgreSQL 数据库 query 返回所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数。PHP 程序会在结束时自动释放。参数 result 为查询结果代码。

pg_GetLastOid
取得最后的类代码。
语法: int pg_getlastoid(int result);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数获取最后的类代码,类是由 pg_Exec() 所执行的 INSERT SQL 指令产生的。参数 result 为查询结果代码。若不是由 pg_Exec() 的 INSERT 产生类,则会产生错误,返回 -1 值。

pg_Host
取得连接机器名称。
语法: string pg_host(int connection);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数用来取得目前连接中的 PostgreSQL 服务器名称。参数 connection 为连接代码。

pg_loclose
关闭大型类。
语法: void pg_loclose(int fd);
返回值: 无
函数种类: 数据库功能
内容说明: 本函数用来关闭大型类 (Inversion Large Object)。参数 fd 是由 pg_loopen() 所打开的文件代码。

pg_locreate
建立大型类。
语法: int pg_locreate(int connection);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来建立大型类 (Inversion Large Object)。参数 connection 为连接代码。PostgreSQL 数据库的存取模式只有 INV_READ、INV_WRITE 二种,INV_ARCHIVE 已经从 PostgreSQL 6.3 之后的版本移除。返回值为类代码。

pg_loopen
打开大型类。
语法: int pg_loopen(int connection, int objoid, string mode);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来打开大型类 (Inversion Large Object)。参数 connection 为连接代码。参数 objoid 为类代码。参数 mode 的值有只读 (r)、只写 (w) 及可读写 (rw) 等三种。返回值为文件代码。

pg_loread
读取大型类。
语法: string pg_loread(int fd, int len);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数用来读取大型类 (Inversion Large Object)。参数 fd 为类的文件代码。参数 len 为欲读取的最大长度。

pg_loreadall
读取大型类并输出。
语法: void pg_loreadall(int fd);
返回值: 无
函数种类: 数据库功能
内容说明: 本函数用来读取大型类 (Inversion Large Object),并将结果输出到标准输出设备中。参数 fd 为类的文件代码。

pg_lounlink
删除大型类。
语法: void pg_lounlink(int connection, int lobjid);
返回值: 无
函数种类: 数据库功能
内容说明: 本函数用来删除大型类 (Inversion Large Object)。参数 connection 为连接代码。参数 objoid 为类代码。

pg_lowrite
读取大型类。
语法: int pg_lowrite(int fd, string buf);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来写入大型类 (Inversion Large Object)。参数 fd 为类的文件代码。参数 buf 为欲写入类的字符串。若有错误则返回 false 值,正确则返回写入字符串的位组 (byte) 数。

pg_NumFields
取得返回字段的数目。
语法: int pg_numfields(int result);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到返回字段的数目。参数 result 为 PostgreSQL 服务器执行 query 的返回代码。若有错误则返回 -1。

pg_NumRows
取得返回列的数目。
语法: int pg_numrows(int result);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到返回列的数目。参数 result 为 PostgreSQL 服务器执行 query 的返回代码。若有错误则返回 -1。

pg_Options
取得连接机器选项。
语法: string pg_options(int connection);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数用来取得目前连接中 PostgreSQL 服务器的选项。参数 connection 为连接代码。

pg_pConnect
打开 PostgreSQL 服务器持续连接。
语法: int pg_pconnect(string [host], string [port], string [options], string [tty], string database);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数打开与 PostgreSQL 服务器的持续连接。参数 host 表服务器名称。参数 port 为连接埠。参数 options 为选项。参数 tty 为终端机。参数 database 为数据库名。成功返回连接代号、失败返回 false 值。本函数和 pg_Connect() 不同的地方在于使用本函数打开数据库时,程序会先寻找是否曾经执行过本函数,若执行过则返回先前执行的 ID。此外程序结束后并不会关闭连接,而是等下次程序使用。
参考: pg_Connect()

pg_Port
取得连接机器埠号。
语法: int pg_port(int connection);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来取得目前连接中 PostgreSQL 服务器的埠号。参数 connection 为连接代码。

pg_Result
取得查询 (query) 的结果。
语法: mixed pg_result(int result, int row, mixed field);
返回值: 混合类型资料
函数种类: 数据库功能
内容说明: 本函数取得一格 query 的结果。参数 field 可以是字段名称、顺序或者是 FieldName.TableName 的格式。

pg_tty
取得连接机器终端机。
语法: string pg_tty(int connection);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数用来取得目前连接中 PostgreSQL 服务器的终端机名称,供调试等使用。参数 connection 为连接代码。

原文转自:http://www.ltesting.net