PHP處理數據庫的經常使用函數

  mysql_affected_rows: 獲得 MySQL 最後操做影響的列數目。
  mysql_close: 關閉 MySQL 服務器鏈接。
  mysql_connect: 打開 MySQL 服務器鏈接。
  mysql_create_db: 創建一個 MySQL 新數據庫。
  mysql_data_seek: 移動內部返回指針。
  mysql_db_query: 送查詢字符串 (query) 到 MySQL 數據庫。
  mysql_drop_db: 移除數據庫。
  mysql_errno: 返回錯誤信息代碼。
  mysql_error: 返回錯誤信息。
  mysql_fetch_array: 返回數組資料。
  mysql_fetch_field: 取得字段信息。
  mysql_fetch_lengths: 返回單列各欄資料最大長度。
  mysql_fetch_object: 返回類資料。
  mysql_fetch_row: 返回單列的各字段。
  mysql_field_name: 返回指定字段的名稱。
  mysql_field_seek: 配置指針到返回值的某字段。
  mysql_field_table: 得到目前字段的資料表 (table) 名稱。
  mysql_field_type: 得到目前字段的類型。
  mysql_field_flags: 得到目前字段的標誌。
  mysql_field_len: 得到目前字段的長度。
  mysql_free_result: 釋放返回佔用內存。
  mysql_insert_id: 返回最後一次使用 INSERT 指令的 ID。
  mysql_list_fields: 列出指定資料表的字段 (field)。
  mysql_list_dbs: 列出 MySQL 服務器可用的數據庫 (database)。
  mysql_list_tables: 列出指定數據庫的資料表 (table)。
  mysql_num_fields: 取得返回字段的數目。
  mysql_num_rows: 取得返回列的數目。
  mysql_pconnect: 打開 MySQL 服務器持續鏈接。
  mysql_query: 送出一個 query 字符串。
  mysql_result: 取得查詢 (query) 的結果。
  mysql_select_db: 選擇一個數據庫。
  mysql_tablename: 取得資料表名稱。php


  mysql_affected_rows 獲得 MySQL 最後操做影響的列數目。
  語法: int mysql_affected_rows(int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
 內容說明: 本函數可獲得 MySQL 最後查詢操做 INSERT、UPDATE 或 DELETE 所影響的列 (row) 數目。若最後的查詢 (query) 是使用 DELETE 並且沒有使用 WHERE 命令,則會刪除所有資料,本函數將返回 0。若最後使用的是 SELECT,則用本函數不會獲得預期的數目,由於要改變 MySQL 數據庫本函數纔有效,欲獲得 SELECT 返回的數目需使用 mysql_num_rows() 函數。

  mysql_close 關閉 MySQL 服務器鏈接。
  語法: int mysql_close(int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數關閉與 MySQL 數據庫服務器的鏈接。若無指定參數 link_identifier 則會關閉最後的一筆鏈接。用 mysql_pconnect() 鏈接則沒法使用本函數關閉。實際上本函數不是必定須要的,當 PHP 整頁程序結束後,將會自動關閉與數據庫的非永久性 (non-persistent) 鏈接。成功返回 true、失敗返回 false 值。
  參考: mysql_connect() mysql_pconnect()

  mysql_connect 打開 MySQL 服務器鏈接。
  語法: int mysql_connect(string [hostname] [:port], string [username], string [password]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數創建與 MySQL 服務器的鏈接。其中全部的參數均可省略。當使用本函數卻不加任何參數時,參數 hostname 的默認值爲 localhost、參數 username 的默認值爲 PHP 執行行程的擁有者、參數 password 則爲空字符串 (即沒有密碼)。而參數 hostname 後面能夠加冒號與埠號,表明使用那個埠與 MySQL 鏈接。固然在使用數據庫時,早點使用 mysql_close() 將鏈接關掉能夠節省資源。

   使用範例
  <?php 
    $dbh = mysql_connect('localhost:3306','mcclain','standard'); 
    mysql_select_db('admreqs'); 
    $query = "insert into requests(date, request, email, priority,status) values     (NOW(),'$description''$email''$priority''NEW')"
    $res = mysql_query($query, $dbh); 
    $query = "select max(id) from requests"
    $res = mysql_query($query, $dbh); 
    $err = mysql_error(); 
    if($err){ 
      echo "發生錯誤,請通知<a href=mailto:webmaster@my.site>站長</a>"
    } 
    $row = mysql_fetch_row($res); 
    echo "將來您使用的號碼爲: ".$row[0]; 
  ?> 
  參考: mysql_close() mysql_pconnect()

  mysql_create_db 創建一個 MySQL 新數據庫。
  語法: int mysql_create_db(string database name, int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數用來創建新的數據庫 (database)。在創建前,必須先與服務器鏈接。
  參考: mysql_drop_db()

  mysql_data_seek 移動內部返回指針。
  語法: int mysql_data_seek(int result_identifier, int row_number);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數可移動內部返回的列指針到指定的 row_number 去。以後若使用 mysql_fetch_row() 能夠返回新列的值。成功返回 true、失敗則返回 false。

  mysql_db_query 送查詢字符串 (query) 到 MySQL 數據庫。
  語法: int mysql_db_query(string database, string query, int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數用來送出查詢字符串 (query) 到後端的 MySQL 數據庫中。而可省略的參數   link_identifier 若不存在,程序會自動尋找其它 mysql_connect() 鏈接後的鏈接代碼。發生錯誤時會返回 false,其它沒錯誤時則返回它的返回代碼。
  參考: mysql_connect()

  mysql_drop_db 移除數據庫。
  語法: int mysql_drop_db(string database_name, int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數移除已存在的數據庫。成功返回 true、失敗則返回 false。
  參考: mysql_create_db()

  mysql_errno
  返回錯誤信息代碼。
  語法: int mysql_errno(int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能 
  內容說明: 本函數能夠獲得 MySQL 數據庫服務器的錯誤代碼。一般用在 PHP 網頁程序開發階段,做爲 PHP 與 MySQL 的除錯用。

  使用範例
  <?php
    mysql_connect("marliesle");
    echo mysql_errno().": ".mysql_error()."<BR>";
    mysql_select_db("nonexistentdb");
    echo mysql_errno().": ".mysql_error()."<BR>";
    $conn = mysql_query("SELECT * FROM nonexistenttable");
    echo mysql_errno().": ".mysql_error()."<BR>";
  ?> 
  參考: mysql_error()

  mysql_error 返回錯誤信息。
  語法: string mysql_error(int [link_identifier]);
  返回值: 字符串
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得 MySQL 數據庫服務器的錯誤信息。一般用在 PHP 網頁程序開發階段,與 mysql_errno() 一塊兒做爲PHP 與 MySQL 的除錯用。
  參考: mysql_errno()

  mysql_fetch_array 返回數組資料。
  語法: array mysql_fetch_array(int result, int [result_typ]);
  返回值: 數組
  函數種類: 數據庫功能
  內容說明: 本函數用來將查詢結果 result 拆到數組變量中。若 result 沒有資料,則返回 false 值。而本函數能夠說是 mysql_fetch_row() 的增強函數,除能夠將返回列及數字索引放入數組以外,還能夠將文字索引放入數組中。如果好幾個返回字段都是相同的文字名稱,則最後一個置入的字段有效,解 決方法是使用數字索引或者爲這些同名的字段 (column) 取別名 (alias)。治募注意的是使用本函數的處理速度其實不會比 mysql_fetch_row() 函數慢,要用哪一個函數仍是看使用的需求決定。參數 result_typ 是一個常量值,有如下幾種常量 MYSQL_ASSOC、MYSQL_NUM 與 MYSQL_BOTH。

   使用範例
  <?php
    mysql_connect($host,$user,$password);
    $result = mysql_db_query("database","select * from table");
    while($row = mysql_fetch_array($result)) {
      echo $row["user_id"];
      echo $row["fullname"];
    }
    mysql_free_result($result);
  ?>

  mysql_fetch_field 取得字段信息。
  語法: object mysql_fetch_field(int result, int [field_offset]);
  返回值: 類
  函數種類: 數據庫功能
  內容說明: 本函數返回的類資料爲 result 的字段 (Column) 信息。返回類的屬性以下:

  name - 字段名稱
  table - 字段所在表格的資料表名稱
  max_length - 字段的最大長度
  not_null - 若爲 1 表示本字段不能是空的 (null) 
  primary_key - 若爲 1 表示本字段是主要鍵 (primary key) 
  unique_key - 若爲 1 表示本字段爲不可重覆鍵 (unique key) 
  multiple_key - 若爲 1 表示本字段爲可重覆鍵 (non-unique key) 
  numeric - 若爲 1 表示本字段爲數字類型 (numeric) 
  blob - 若爲 1 表示本字段爲位類型 (BLOB) 
  type - 字段類型
  unsigned - 若爲 1 表示本字段爲無記號 (unsigned) 
  zerofill - 若爲 1 表示本字段爲被零填滿 (zero-filled) 
  參考: mysql_field_seek()

  mysql_fetch_lengths 返回單列各欄資料最大長度。
  語法: array mysql_fetch_lengths(int result);
  返回值: 數組
  函數種類: 數據庫功能
  內容說明: 本函數將 mysql_fetch_row() 處理過的最後一列資料的各字段資料最大長度放在數組變量之中。若執行失敗則返回 false 值。返回數組的第一筆資料索引值是 0。
  參考: mysql_fetch_row()

mysql_fetch_object 返回類資料。
  語法: object mysql_fetch_object(int result, int [result_typ]);
  返回值: 類
  函數種類: 數據庫功能
  內容說明: 本函數用來將查詢結果 result 拆到類變量中。使用方法和 mysql_fetch_array() 幾乎相同,不一樣的地方在於本函數返回資料是類而不是數組。若 result 沒有資料,則返回 false 值。另外治募注意的地方是,取回的類資料的索引只能是文字而不能用數字,這是由於類的特性。類資料的特性中全部的屬性 (property) 名稱都不能是數字,所以只好乖乖使用文字字符串當索引了。參數 result_typ是一個常量值,有如下幾種常量 MYSQL_ASSOC、MYSQL_NUM 與 MYSQL_BOTH。關於速度方面,本函數的處理速度幾乎和 mysql_fetch_row() 及 mysql_fetch_array() 二函數差很少,要用哪一個函數仍是看使用的需求決定。

   使用範例,下面的例子示範如使用返回的類。
  <?php 
    mysql_connect($host,$user,$password);
    $result = mysql_db_query("MyDatabase","select * from test");
    while($row = mysql_fetch_object($result)) {
      echo $row->user_id;
      echo $row->fullname;
    }
    mysql_free_result($result);
  ?> 
  參考: mysql_fetch_array() mysql_fetch_row()

  mysql_fetch_row 返回單列的各字段。
  語法: array mysql_fetch_row(int result);
  返回值: 數組
  函數種類: 數據庫功能
  內容說明: 本函數用來將查詢結果 result 之單列拆到數組變量中。數組的索引是數字索引,第一個的索引值是 0。若 result 沒有資料,則返回 false 值。
參考: mysql_fetch_array() mysql_fetch_object() mysql_data_seek() mysql_fetch_lengths() mysql_result()

  mysql_field_name 返回指定字段的名稱。
  語法: string mysql_field_name(int result, int field_index);
  返回值: 字符串
  函數種類: 數據庫功能
  內容說明: 本函數用來取得指定字段的名稱。

  使用範例
  mysql_field_name($result,2); 

  mysql_field_seek 配置指針到返回治募某字段。
  語法: int mysql_field_seek(int result, int field_offset);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數配置目前的指針到返回治募特定字段中。
  參考: mysql_fetch_field()

  mysql_field_table 得到目前字段的資料表 (table) 名稱。
  語法: string mysql_field_table(int result, int field_offset);
  返回值: 字符串
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得目前所在字段的資料表名。

  mysql_field_type 得到目前字段的類型。
  語法: string mysql_field_type(int result, int field_offset);
  返回值: 字符串
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得目前所在字段的類型格式。返回的字符串爲字段的類型,包括了 int、real、string、blob....等等,詳見 MySQL 的相關文件中有關於類型的部份。

  使用範例
  <?php
    mysql_connect("localhost:3306");
    mysql_select_db("wisconsin");
    $result = mysql_query("SELECT * FROM onek");
    $fields = mysql_num_fields($result);
    $rows = mysql_num_rows($result);
    $i = 0;
    $table = mysql_field_table($result, $i);
    echo "資料表 '".$table."' 有 ".$fields." 欄及 ".$rows." 列。<br>";
    echo "本資料表的字段以下<br>";
    while ($i < $fields) {
      $type = mysql_field_type ($result, $i);
      $name = mysql_field_name ($result, $i);
      $len = mysql_field_len ($result, $i);
      $flags = mysql_field_flags ($result, $i);
      echo $type." ".$name." ".$len." ".$flags."<br>";
      $i++;
    }
    mysql_close();
  ?>

  mysql_field_flags 得到目前字段的標誌。
  語法: string mysql_field_flags(int result, int field_offset);
  返回值: 字符串
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得目前所在字段的標誌。若一個字段有數種屬性標誌,則返回的標誌爲這些屬性連起來的字符串,每一個屬性都用空格隔開,可使用 explode() 切開這些字符串。返回的標誌多是:not_null、primary_key、unique_key、multiple_key、blob、 unsigned、zerofill、binary、enum、auto_increment、timestamp。

  mysql_field_len 得到目前字段的長度。
  語法: int mysql_field_len(int result, int field_offset);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得目前所在字段的長度。

  mysql_free_result 釋放返回佔用內存。
  語法: boolean mysql_free_result(int result);
  返回值: 布爾值
  函數種類: 數據庫功能
  內容說明: 本函數能夠釋放目前 MySQL 數據庫 query 返回所佔用的內存。通常只有在很是擔憂在內存的使用上可能會不足的情形下才會用本函數。PHP 程序會在結束時自動釋放。

  mysql_insert_id 返回最後一次使用 INSERT 指令的 ID。
  語法: int mysql_insert_id(int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得最後一次使用 INSERT 到 MySQL 數據庫的執行 ID。sleibowitz@btcwcu.org (13-May-1999) 指出在 PHP 3.0.7版用 REPLACE 也和使用 INSERT 同樣,可使用本函數得到 ID。

  mysql_list_fields 列出指定資料表的字段 (field)。
  語法: int mysql_list_fields(string database_name, string table_name, int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得指定的資料表的全部字段。返回的字段信息能夠供 mysql_field_flags()、mysql_field_len()、mysql_field_name() 及 mysql_field_type() 等函數使用。如有錯誤則返回 -1。

  mysql_list_dbs 列出 MySQL 服務器可用的數據庫 (database)。
  語法: int mysql_list_dbs(int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得 MySQL 服務器的可用數據庫。

  mysql_list_tables 列出指定數據庫的資料表 (table)。
  語法: int mysql_list_tables(string database, int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得指定數據庫中的全部資料表名稱。

  mysql_num_fields 取得返回字段的數目。
  語法: int mysql_num_fields(int result);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得返回字段的數目。
  參考: mysql_db_query() mysql_query() mysql_fetch_field() mysql_num_rows()

  mysql_num_rows 取得返回列的數目。
  語法: int mysql_num_rows(int result);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數能夠獲得返回列的數目。
  參考: mysql_db_query() mysql_query() mysql_fetch_row()

  mysql_pconnect 打開 MySQL 服務器持續鏈接。
  語法: int mysql_pconnect(string [hostname] [:port], string [username], string [password]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數和 mysql_connect() 雷同。不一樣的地方在於使用本函數打開數據庫時,程序會先尋找是否曾經執行過本函數,若執行過則返回先前執行的 ID。另外一個不一樣的地方是本函數沒法使用 mysql_close() 關閉數據庫。

  mysql_query 送出一個 query 字符串。
  語法: int mysql_query(string query, int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數送出 query 字符串供 MySQL 作相關的處理或者執行。若沒有指定 link_identifier 參數,則程序會自動尋找最近打開的 ID。當 query 查詢字符串是 UPDATE、INSERT 及 DELETE 時,返回的多是 true 或者 false;查詢的字符串是 SELECT 則返回新的 ID 值。joey@samaritan.com (09-Feb-1999) 指出,當返回 false 時,並非執行成功但無返回值,而是查詢的字符串有錯誤。
  參考: mysql_db_query() mysql_select_db() mysql_connect() 

  mysql_result 取得查詢 (query) 的結果。
  語法: int mysql_result(int result, int row, mixed field);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數取得一格 query 的結果。參數 field 能夠是字段名稱、順序或者是 FieldName.TableName 的格式。在返回資料量少時,可使用本函數來處理。當數據庫大時,本函數的效率就有待考量了,這時可使用較有效率的 mysql_fetch_row()、mysql_fetch_array() 及 mysql_fetch_object() 等函數。

  mysql_select_db 選擇一個數據庫。
  語法: int mysql_select_db(string database_name, int [link_identifier]);
  返回值: 整數
  函數種類: 數據庫功能
  內容說明: 本函數選擇 MySQL 服務器中的數據庫以供以後的資料查詢做業 (query) 處理。成功返回 true,失敗則返回 false。
  參考: mysql_connect() mysql_pconnect() mysql_query()

  mysql_tablename 取得資料表名稱。
  語法: string mysql_tablename(int result, int i);
  返回值: 字符串
  函數種類: 數據庫功能
  內容說明: 本函數可取得資料表名稱字符串,通常配合 mysql_list_tables() 函數使用,取得該函返回的數字的名稱字符串。

  使用範例
  <?php 
    mysql_connect ("localhost:3306");
    $result = mysql_list_tables ("wisconsin");
    $i = 0;
    while ($i < mysql_num_rows ($result)) {
      $tb_names[$i] = mysql_tablename ($result, $i);
      echo $tb_names[$i] . "<BR>";
      $i++;
    }
  ?>mysql

相關文章
相關標籤/搜索