MySQL 資料庫函數庫

來源:互聯網
上載者:User

本函數庫供存取 MySQL 資料庫。有關 MySQL 的細節,及下載 MySQL 資料庫,請到這個網址 http://www.mysql.com 。而網路上也有許多提供處理 MySQL 的使用者介面程式,建議到 http://www.phpwizard.net/phpMyAdmin 下載 phpMyAdmin,可以使用瀏覽器操作及管理 MySQL。整套 phpMyAdmin 程式,是用 PHP3 完成的,亦可同時研究 PHP3 與 MySQL 的連結。

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: 取得資料表名稱。

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() 將串連關掉可以節省資源。
使用範例
這是一位未具名網友提供的範例 (18-Feb-1999)
<?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++;
}
?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.