資源類型
在 MySQL 模塊中使用了兩種資源類型。第一種是數據庫的連接句柄,第二種是 SQL 查詢返回的結果集。
預定義常量
以下常量由本擴展模塊定義,因此只有在本擴展模塊被編譯到 PHP 中,或者在運行時被動態加載後才有效。
在 PHP 4.3.0 以後的版本中,允許在 mysql_connect() 函數和 mysql_pconnect() 函數中指定更多的客戶端標記。下面列出所定義的常量:
表格 2. MySQL 客戶端常量
常量 描述
MYSQL_CLIENT_COMPRESS 使用壓縮的通訊協議
MYSQL_CLIENT_IGNORE_SPACE 允許在函數名後留空格位
MYSQL_CLIENT_INTERACTIVE 允許設置斷開連接之前所空閒等候的 interactive_timeout 時間(代替 wait_timeout)。
MYSQL_CLIENT_SSL 使用 SSL 加密。本標志僅在 MySQL 客戶端庫版本為 4.x 或更高版本時可用。在 PHP 4 和 Windows 版的 PHP 5 安裝包中綁定的都是 3.23.x。
mysql_fetch_array() 函數使用一個常量來表示所返回數組的類型。下面是常量的定義:
表格 3. MySQL fetch 常量
常量 描述
MYSQL_ASSOC 返回的數據列使用字段名作為數組的索引名。
MYSQL_BOTH 返回的數據列使用字段名及數字索引作為數組的索引名。
MYSQL_NUM 返回的數據列使用數字索引作為數組的索引名。索引從 0 開始,表示返回結果的第一個字段。
注釋
注: 大多數 MySQL 函數都接受 link_identifier 作為最後一個可選參數。如果未提供此參數,則使用最後一個打開的連接。如果不存在連接,則會用 php.ini 中定義的默認參數去嘗試建立連接。如果連接不成功,函數返回 FALSE。
范例
下面的簡單例子演示如何連接數據庫,執行查詢語句,打印返回結果集和斷開數據庫等一系列基本的 MySQL 操作。 例子 1. MySQL 例子
<?php
// 連接,選擇數據庫
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');
// 執行 SQL 查詢
$query = 'Select * FROM my_table';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
// 用 HTML 顯示結果
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
// 釋放結果集
mysql_free_result($result);
// 關閉連接
mysql_close($link);
?>
目錄
mysql_affected_rows -- 取得前一次 MySQL 操作所影響的記錄行數
mysql_change_user -- 改變活動連接中登錄的用戶
mysql_client_encoding -- 返回字符集的名稱
mysql_close -- 關閉 MySQL 連接
mysql_connect -- 打開一個到 MySQL 服務器的連接
mysql_create_db -- 新建一個 MySQL 數據庫
mysql_data_seek -- 移動內部結果的指針
mysql_db_name -- 取得結果數據
mysql_db_query -- 發送一條 MySQL 查詢
mysql_drop_db -- 丟棄(刪除)一個 MySQL 數據庫
mysql_errno -- 返回上一個 MySQL 操作中的錯誤信息的數字編碼
mysql_error -- 返回上一個 MySQL 操作產生的文本錯誤信息
mysql_escape_string -- 轉義一個字符串用於 mysql_query
mysql_fetch_array -- 從結果集中取得一行作為關聯數組,或數字數組,或二者兼有
mysql_fetch_assoc -- 從結果集中取得一行作為關聯數組
mysql_fetch_field -- 從結果集中取得列信息並作為對象返回
mysql_fetch_lengths -- 取得結果集中每個輸出的長度
mysql_fetch_object -- 從結果集中取得一行作為對象
mysql_fetch_row -- 從結果集中取得一行作為枚舉數組
mysql_field_flags -- 從結果中取得和指定字段關聯的標志
mysql_field_len -- 返回指定字段的長度
mysql_field_name -- 取得結果中指定字段的字段名
mysql_field_seek -- 將結果集中的指針設定為制定的字段偏移量
mysql_field_table -- 取得指定字段所在的表名
mysql_field_type -- 取得結果集中指定字段的類型
mysql_free_result -- 釋放結果內存
mysql_get_client_info -- 取得 MySQL 客戶端信息
mysql_get_host_info -- 取得 MySQL 主機信息
mysql_get_proto_info -- 取得 MySQL 協議信息
mysql_get_server_info -- 取得 MySQL 服務器信息
mysql_info -- 取得最近一條查詢的信息
mysql_insert_id -- 取得上一步 Insert 操作產生的 ID
mysql_list_dbs -- 列出 MySQL 服務器中所有的數據庫
mysql_list_fields -- 列出 MySQL 結果中的字段
mysql_list_processes -- 列出 MySQL 進程
mysql_list_tables -- 列出 MySQL 數據庫中的表
mysql_num_fields -- 取得結果集中字段的數目
mysql_num_rows -- 取得結果集中行的數目
mysql_pconnect -- 打開一個到 MySQL 服務器的持久連接
mysql_ping -- Ping 一個服務器連接,如果沒有連接則重新連接
mysql_query -- 發送一條 MySQL 查詢
mysql_real_escape_string -- 轉義 SQL 語句中使用的字符串中的特殊字符,並考慮到連接的當前字符集
mysql_result -- 取得結果數據
mysql_select_db -- 選擇 MySQL 數據庫
mysql_stat -- 取得當前系統狀態
mysql_tablename -- 取得表名
mysql_thread_id -- 返回當前線程的 ID
mysql_unbuffered_query -- 向 MySQL 發送一條 SQL 查詢,並不獲取和緩存結果的行