[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 編程技術 > Php > 正文
PHP4手冊:函數庫及函數(四十一) PostgreSQL 資料庫函式庫
http://netleader.126.com 星空浪子 (2001-04-18 15:58:12)

--------------------------------------------------------------------------------
 PostgreSQL 資料庫函式庫 
--------------------------------------------------------------------------------
 


本函式庫共有 32 個函式
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) 的例子

$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 資料庫函式庫


pg_Close
關閉 PostgreSQL 伺服器連線。

語法: boolean pg_close(int connection);

傳回值: 布林值

函式種類: 資料庫功能


 
 
內容說明 


本函式關閉與 PostgreSQL 伺服器的連線。參數 connection 為連線代碼。成功傳回 true、失敗傳回 false 值。

 

--------------------------------------------------------------------------------
 函式:pg_cmdTuples() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_cmdTuples
取得被 SQL 指令影響的資料筆數。

語法: int pg_cmdtuples(int result_id);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得 PostgreSQL 的 SQL 指令所影響的資料筆數,這些 query 指令包括 INSERT、UPDATE 與 DELETE 等。傳回值為影響的筆數,若沒有資料受影響則傳回 0。


 
 
使用范例 


本例為部份的程式

$result = pg_exec($conn, "INSERT INTO verlag VALUES ('Autor')");
$cmdtuples = pg_cmdtuples($result);
echo $cmdtuples." 筆資料受影響

\n";
?> 

 

--------------------------------------------------------------------------------
 函式:pg_Connect() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


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() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_DBname
取得目前的資料庫名稱。

語法: string pg_dbname(int connection);

傳回值: 字串

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得 PostgreSQL 目前使用的資料庫 (database) 名稱。參數 connection 為連線代碼。

 

--------------------------------------------------------------------------------
 函式:pg_ErrorMessage() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_ErrorMessage
傳回錯誤訊息。

語法: string pg_errormessage(int connection);

傳回值: 字串

函式種類: 資料庫功能


 
 
內容說明 


本函式可以取得 PostgreSQL 伺服器的錯誤訊息。參數 connection 為連線代碼。

 

--------------------------------------------------------------------------------
 函式:pg_Exec() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_Exec
執行 query 指令。

語法: int pg_exec(int connection, string query);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式用來執行指定的 query 指令。參數 connection 為連線代碼。參數 query 為欲執行的指令。

 

--------------------------------------------------------------------------------
 函式:pg_Fetch_Array() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_Fetch_Array
傳回陣列資料。

語法: array pg_fetch_array(int result, int row);

傳回值: 陣列

函式種類: 資料庫功能


 
 
內容說明 


本函式用來將查詢結果 result 拆到陣列變數中。若 result 沒有資料,則傳回 false 值。參數 result 為使用 pg_Exec() 所傳回的代碼值。參數 row 為列數。


 
 
使用范例 


$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() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_Fetch_Object
傳回物件資料。

語法: object pg_fetch_object(int result, int row);

傳回值: 物件

函式種類: 資料庫功能


 
 
內容說明 


本函式用來將查詢結果 result 拆到物件變數中。若 result 沒有資料,則傳回 false 值。參數 result 為使用 pg_Exec() 所傳回的代碼值。參數 row 為列數。


 
 
使用范例 


$database = "verlag";
$db_conn = pg_connect("localhost", "5432", "", "", $database);
if (!$db_conn): ?>
  無法連上  資料庫  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."
";
  $row++;
endwhile; ?>

$fields[] = Array("autor", "Author");

$fields[] = Array("jahr",  "  Year");
$fields[] = Array("titel", " Title");
$row = 0;
while ($data = pg_fetch_object($qu, $row)):
  echo "

\n";
  reset ($fields);
  while (list (,$item) = each($fields)):
    echo $item[1].": ".$data->$item[0]."\n";
  endwhile;
  $row++;
endwhile;
echo "


"; ?>
pg_freeResult($qu);
pg_close($db_conn);
?> 


--------------------------------------------------------------------------------
 函式:pg_Fetch_Row() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_Fetch_Row
傳回單列的各欄位。

語法: array pg_fetch_row(int result, int row);

傳回值: 陣列

函式種類: 資料庫功能


 
 
內容說明 


本函式用來將查詢結果 result 之單列拆到陣列變數中。陣列的索引是數字索引,第一個的索引值是 0。若 result 沒有資料,則傳回 false 值。參數 row 表列數。


 
 
使用范例 


$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() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_FieldIsNull
檢查欄位是否有資料。

語法: int pg_fieldisnull(int result, int row, mixed field);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式可檢查指定的欄位是否有資料。參數 result 為查詢結果代碼。參數 row 為指定列數,第一個的索引值是 0。參數 field 為指定的欄位。傳回 0 表示有資料,傳回 1 表示無資料 (Null)。

 

--------------------------------------------------------------------------------
 函式:pg_FieldName() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_FieldName
傳回指定欄位的名稱。

語法: string pg_fieldname(int result, int field);

傳回值: 字串

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得指定欄位的名稱。參數 result 為查詢結果代碼。參數 field 為指定的欄位,第一欄為 0。

 

--------------------------------------------------------------------------------
 函式:pg_FieldNum() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_FieldNum
取得指定欄位的行數。

語法: int pg_fieldnum(int result, mixed field);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得指定欄位的行數。參數 result 為查詢結果代碼。參數 field 為指定的欄位,第一欄為 0。若有錯誤則傳回 -1 值。

 

--------------------------------------------------------------------------------
 函式:pg_FieldPrtLen() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_FieldPrtLen
計算可列示的長度。

語法: int pg_fieldprtlen(int result, int row, mixed field);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得指定欄位的可列示字元長度。參數 result 為查詢結果代碼。參數 row 表指定的列。參數 field 為指定的欄位,第一欄為 0。若有錯誤則傳回 -1 值。

 

--------------------------------------------------------------------------------
 函式:pg_FieldSize() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_FieldSize
計算指定欄位的長度。

語法: int pg_fieldsize(int result, mixed field);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得指定欄位的長度 (位元組)。參數 result 為查詢結果代碼。參數 field 為指定的欄位,第一欄為 0。若有錯誤則傳回 -1 值。

 

--------------------------------------------------------------------------------
 函式:pg_FieldType() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_FieldType
獲得目前欄位的型態。

語法: string pg_fieldtype(int result, mixed field);

傳回值: 字串

函式種類: 資料庫功能


 
 
內容說明 


本函式可以得到目前所在欄位的型態格式。傳回的字串為欄位的型態,包括了 int、real、string....等等。參數 result 為查詢結果代碼。參數 field 為指定的欄位,第一欄為 0。若有錯誤則傳回 -1 值。

 

--------------------------------------------------------------------------------
 函式:pg_FreeResult() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_FreeResult
釋放傳回佔用記憶體。

語法: boolean pg_freeresult(int result);

傳回值: 布林值

函式種類: 資料庫功能


 
 
內容說明 


本函式可以釋放目前 PostgreSQL 資料庫 query 傳回所佔用的記憶體。一般只有在非常擔心在記憶體的使用上可能會不足的情形下才會用本函式。PHP 程式會在結束時自動釋放。參數 result 為查詢結果代碼。

 

--------------------------------------------------------------------------------
 函式:pg_GetLastOid() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_GetLastOid
取得最的物件代碼。

語法: int pg_getlastoid(int result);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式獲取最的物件代碼,物件是由 pg_Exec() 所執行的 INSERT SQL 指令產生的。參數 result 為查詢結果代碼。若不是由 pg_Exec() 的 INSERT 產生物件,則會產生錯誤,傳回 -1 值。

 

--------------------------------------------------------------------------------
 函式:pg_Host() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_Host
取得連線機器名稱。

語法: string pg_host(int connection);

傳回值: 字串

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得目前連線中的 PostgreSQL 伺服器名稱。參數 connection 為連線代碼。

 

--------------------------------------------------------------------------------
 函式:pg_loclose() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_loclose
關閉大型物件。

語法: void pg_loclose(int fd);

傳回值: 無

函式種類: 資料庫功能


 
 
內容說明 


本函式用來關閉大型物件 (Inversion Large Object)。參數 fd 是由 pg_loopen() 所開啟的檔案代碼。

 

--------------------------------------------------------------------------------
 函式:pg_locreate() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_locreate
建立大型物件。

語法: int pg_locreate(int connection);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式用來建立大型物件 (Inversion Large Object)。參數 connection 為連線代碼。PostgreSQL 資料庫的存取模式只有 INV_READ、INV_WRITE 二種,INV_ARCHIVE 已經從 PostgreSQL 6.3 之的版本移除。傳回值為物件代碼。

 

--------------------------------------------------------------------------------
 函式:pg_loopen() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_loopen
開啟大型物件。

語法: int pg_loopen(int connection, int objoid, string mode);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式用來開啟大型物件 (Inversion Large Object)。參數 connection 為連線代碼。參數 objoid 為物件代碼。參數 mode 的值有唯讀 (r)、唯寫 (w) 及可讀寫 (rw) 等三種。傳回值為檔案代碼。

 

--------------------------------------------------------------------------------
 函式:pg_loread() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_loread
讀取大型物件。

語法: string pg_loread(int fd, int len);

傳回值: 字串

函式種類: 資料庫功能


 
 
內容說明 


本函式用來讀取大型物件 (Inversion Large Object)。參數 fd 為物件的檔案代碼。參數 len 為欲讀取的最大長度。

 

--------------------------------------------------------------------------------
 函式:pg_loreadall() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_loreadall
讀取大型物件並輸出。

語法: void pg_loreadall(int fd);

傳回值: 無

函式種類: 資料庫功能


 
 
內容說明 


本函式用來讀取大型物件 (Inversion Large Object),並將結果輸出到標準輸出設備中。參數 fd 為物件的檔案代碼。

 

--------------------------------------------------------------------------------
 函式:pg_lounlink() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_lounlink
刪除大型物件。

語法: void pg_lounlink(int connection, int lobjid);

傳回值: 無

函式種類: 資料庫功能


 
 
內容說明 


本函式用來刪除大型物件 (Inversion Large Object)。參數 connection 為連線代碼。參數 objoid 為物件代碼。

 

--------------------------------------------------------------------------------
 函式:pg_lowrite() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_lowrite
讀取大型物件。

語法: int pg_lowrite(int fd, string buf);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式用來寫入大型物件 (Inversion Large Object)。參數 fd 為物件的檔案代碼。參數 buf 為欲寫入物件的字串。若有錯誤則傳回 false 值,正確則傳回寫入字串的位元組 (byte) 數。

 

--------------------------------------------------------------------------------
 函式:pg_NumFields() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_NumFields
取得傳回欄位的數目。

語法: int pg_numfields(int result);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式可以得到傳回欄位的數目。參數 result 為 PostgreSQL 伺服器執行 query 的傳回代碼。若有錯誤則傳回 -1。

 

--------------------------------------------------------------------------------
 函式:pg_NumRows() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_NumRows
取得傳回列的數目。

語法: int pg_numrows(int result);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式可以得到傳回列的數目。參數 result 為 PostgreSQL 伺服器執行 query 的傳回代碼。若有錯誤則傳回 -1。

 

--------------------------------------------------------------------------------
 函式:pg_Options() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_Options
取得連線機器選項。

語法: string pg_options(int connection);

傳回值: 字串

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得目前連線中 PostgreSQL 伺服器的選項。參數 connection 為連線代碼。

 

--------------------------------------------------------------------------------
 函式:pg_pConnect() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


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() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_Port
取得連線機器埠號。

語法: int pg_port(int connection);

傳回值: 整數

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得目前連線中 PostgreSQL 伺服器的埠號。參數 connection 為連線代碼。

 

--------------------------------------------------------------------------------
 函式:pg_Result() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_Result
取得查詢 (query) 的結果。

語法: mixed pg_result(int result, int row, mixed field);

傳回值: 混合型態資料

函式種類: 資料庫功能


 
 
內容說明 


本函式取得一格 query 的結果。參數 field 可以是欄位名稱、順序或者是 FieldName.TableName 的格式。

 

--------------------------------------------------------------------------------
 函式:pg_tty() 
--------------------------------------------------------------------------------
 


PostgreSQL 資料庫函式庫


pg_tty
取得連線機器終端機。

語法: string pg_tty(int connection);

傳回值: 字串

函式種類: 資料庫功能


 
 
內容說明 


本函式用來取得目前連線中 PostgreSQL 伺服器的終端機名稱,供除錯等使用。參數 connection 為連線代碼。 (http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
PHP4手冊:函數庫及函數(四十六) SNMP 網管函式庫 (2001-04-18 16:56:55)
PHP4手冊:函數庫及函數(四十五) Solid 資料庫連結函式庫 (2001-04-18 16:54:16)
PHP4手冊:函數庫及函數(四十四) 信號與共享記憶體函式庫 (2001-04-18 16:49:09)
PHP4手冊:函數庫及函數(四十三) 常規表示法函式庫 (2001-04-18 16:40:33)
PHP4手冊:函數庫及函數(四十二) URL 處理函式庫 (2001-04-18 16:37:13)
PHP4手冊:函數庫及函數(四十一) PostgreSQL 資料庫函式庫 (2001-04-18 15:58:12)
PHP4手冊:函數庫及函數(四十) PDF 格式檔案函式庫 - 2 (2001-04-18 15:53:53)
PHP4手冊:函數庫及函數(四十) PDF 格式檔案函式庫 - 1 (2001-04-18 15:53:35)
PHP4手冊:函數庫及函數(三十九) Perl 相容語法函式庫 (2001-04-18 15:45:08)
PHP4手冊:函數庫及函數(三十八) Oracle 資料庫函式庫 (2001-04-18 15:43:09)

===更多相關===
 

★  樊強制作 歡迎分享  ★