PHP MySQL 函數(shù)-7.13PHP 參考手冊(cè)

閱讀 ?·? 發(fā)布日期 2019-06-29 08:49 ?·? admin

PHP MySQL 簡(jiǎn)介

MySQL 函數(shù)允許您訪問 MySQL 數(shù)據(jù)庫(kù)服務(wù)器。

安裝

為了能夠順利的使用本類函數(shù),必須在編譯 PHP 時(shí)添加對(duì) MySQL 的支持。

編譯時(shí),只要使用 --with-mysql[=DIR] 配置選項(xiàng)即可,其中可選的 [DIR] 指向 MySQL 的安裝目錄。

雖然本 MySQL 擴(kuò)展庫(kù)兼容 MySQL 4.1.0 及其以后版本,但是它不支持這些版本提供的額外功能。要使用這些功能,請(qǐng)使用 MySQLi 擴(kuò)展庫(kù)。

如果要同時(shí)安裝 mysql 擴(kuò)展庫(kù)和 mysqli 擴(kuò)展庫(kù),必須使用同一個(gè)客戶端庫(kù)以避免任何沖突。

在 Linux 系統(tǒng)上安裝

PHP 4

默認(rèn)開啟了 --with-mysql 選項(xiàng)。此默認(rèn)行為可以用 --without-mysql 配置選項(xiàng)來禁止。如果啟用 MySQL 而不指定安裝目錄的話,PHP 將使用綁定的 MySQL 客戶端連接庫(kù)。

還有其它應(yīng)用程序使用 MySQL(例如 auth-mysql)的用戶不要用綁定的庫(kù),而要指定 MySQL 的安裝目錄,如這樣:--with-mysql=/path/to/mysql。這將強(qiáng)制 PHP 使用隨 MySQL 安裝的客戶端連接庫(kù),就可以避免任何沖突。

PHP 5+

MySQL 默認(rèn)未啟用,也沒有綁定的 MySQL 庫(kù)。使用 --with-mysql[=DIR] 配置選項(xiàng)來加入 MySQL 的支持。可以從 MySQL 下載頭文件和庫(kù)。

在 Windows 系統(tǒng)上安裝

PHP 4

PHP MySQL 擴(kuò)展已經(jīng)編譯入 PHP。

PHP 5+

MySQL 默認(rèn)未啟用,因此必須在 php.ini 中激活 php_mysql.dll 動(dòng)態(tài)連接庫(kù)。此外,PHP 還需要訪問 MySQL 客戶端連接庫(kù)。PHP 的 Windows 發(fā)行版包括了一個(gè) libmysql.dll,為了讓 PHP 能和 MySQL 對(duì)話,此文件必須放在 Windows 的系統(tǒng)路徑 PATH 中。

要激活任何 PHP 擴(kuò)展庫(kù)(例如 php_mysql.dll),PHP 指令 extension_dir 要被設(shè)為 PHP 擴(kuò)展庫(kù)所在的目錄。PHP 5 下 extension_dir 取值的一個(gè)例子是 c:\php\ext。

注釋:如果啟動(dòng) web 服務(wù)器時(shí)出現(xiàn)類似如下的錯(cuò)誤:"Unable to load dynamic library './php_mysql.dll'",這是因?yàn)橄到y(tǒng)找不到 php_mysql.dll 和 / 或 libmysql.dll。

Runtime 配置

MySQL 函數(shù)的行為受到 php.ini 中設(shè)置的影響。

MySQL 配置選項(xiàng):

名稱 默認(rèn) 描述 可更改
mysql.allow_persistent "1" 是否允許 MySQL 的持久連接。 PHP_INI_SYSTEM
mysql.max_persistent "-1" 每個(gè)進(jìn)程中最大的持久連接數(shù)目。 PHP_INI_SYSTEM
mysql.max_links "-1" 每個(gè)進(jìn)程中最大的連接數(shù),包括持久連接。 PHP_INI_SYSTEM
mysql.trace_mode "0" 跟蹤模式。從 PHP 4.3.0 起可用。 PHP_INI_ALL
mysql.default_port NULL 指定默認(rèn)連接數(shù)據(jù)庫(kù)的 TCP 端口號(hào)。 PHP_INI_ALL
mysql.default_socket NULL 默認(rèn)的 socket 名稱。PHP 4.0.1起可用。 PHP_INI_ALL
mysql.default_host NULL 默認(rèn)的服務(wù)器地址。不適用于SQL安全模式。 PHP_INI_ALL
mysql.default_user NULL 默認(rèn)使用的用戶名。不適用于SQL安全模式。 PHP_INI_ALL
mysql.default_password NULL 默認(rèn)使用的密碼。不適用于SQL安全模式。 PHP_INI_ALL
mysql.connect_timeout "60" 連接超時(shí)秒數(shù)。 PHP_INI_ALL

資源類型

在 MySQL 模塊中使用了兩種資源類型。第一種是數(shù)據(jù)庫(kù)的連接句柄,第二種是 SQL 查詢返回的結(jié)果集。

PHP MySQL 函數(shù)

PHP:指示支持該函數(shù)的最早的 PHP 版本。

函數(shù) 描述 PHP
mysql_affected_rows() 取得前一次 MySQL 操作所影響的記錄行數(shù)。 3
mysql_change_user() 不贊成。改變活動(dòng)連接中登錄的用戶 3
mysql_client_encoding() 返回當(dāng)前連接的字符集的名稱 4
mysql_close() 關(guān)閉非持久的 MySQL 連接。 3
mysql_connect() 打開非持久的 MySQL 連接。 3
mysql_create_db() 不贊成。新建 MySQL 數(shù)據(jù)庫(kù)。使用 mysql_query() 代替。 3
mysql_data_seek() 移動(dòng)記錄指針。 3
mysql_db_name() 從對(duì) mysql_list_dbs() 的調(diào)用返回?cái)?shù)據(jù)庫(kù)名稱。 3
mysql_db_query()

不贊成。發(fā)送一條 MySQL 查詢。

使用 mysql_select_db() 和 mysql_query() 代替。

3
mysql_drop_db()

不贊成。丟棄(刪除)一個(gè) MySQL 數(shù)據(jù)庫(kù)。

使用 mysql_query() 代替。

3
mysql_errno() 返回上一個(gè) MySQL 操作中的錯(cuò)誤信息的數(shù)字編碼。 3
mysql_error() 返回上一個(gè) MySQL 操作產(chǎn)生的文本錯(cuò)誤信息。 3
mysql_escape_string()

不贊成。轉(zhuǎn)義一個(gè)字符串用于 mysql_query。

使用 mysql_real_escape_string() 代替。

4
mysql_fetch_array() 從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有。 3
mysql_fetch_assoc() 從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組。 4
mysql_fetch_field() 從結(jié)果集中取得列信息并作為對(duì)象返回。 3
mysql_fetch_lengths() 取得結(jié)果集中每個(gè)字段的內(nèi)容的長(zhǎng)度。 3
mysql_fetch_object() 從結(jié)果集中取得一行作為對(duì)象。 3
mysql_fetch_row() 從結(jié)果集中取得一行作為數(shù)字?jǐn)?shù)組。 3
mysql_field_flags() 從結(jié)果中取得和指定字段關(guān)聯(lián)的標(biāo)志。 3
mysql_field_len() 返回指定字段的長(zhǎng)度。 3
mysql_field_name() 取得結(jié)果中指定字段的字段名。 3
mysql_field_seek() 將結(jié)果集中的指針設(shè)定為指定的字段偏移量。 3
mysql_field_table() 取得指定字段所在的表名。 3
mysql_field_type() 取得結(jié)果集中指定字段的類型。 3
mysql_free_result() 釋放結(jié)果內(nèi)存。 3
mysql_get_client_info() 取得 MySQL 客戶端信息。 4
mysql_get_host_info() 取得 MySQL 主機(jī)信息。 4
mysql_get_proto_info() 取得 MySQL 協(xié)議信息。 4
mysql_get_server_info() 取得 MySQL 服務(wù)器信息。 4
mysql_info() 取得最近一條查詢的信息。 4
mysql_insert_id() 取得上一步 INSERT 操作產(chǎn)生的 ID。 3
mysql_list_dbs() 列出 MySQL 服務(wù)器中所有的數(shù)據(jù)庫(kù)。 3
mysql_list_fields()

不贊成。列出 MySQL 結(jié)果中的字段。

使用 mysql_query() 代替。

3
mysql_list_processes() 列出 MySQL 進(jìn)程。 4
mysql_list_tables()

不贊成。列出 MySQL 數(shù)據(jù)庫(kù)中的表。

使用Use mysql_query() 代替。

3
mysql_num_fields() 取得結(jié)果集中字段的數(shù)目。 3
mysql_num_rows() 取得結(jié)果集中行的數(shù)目。 3
mysql_pconnect() 打開一個(gè)到 MySQL 服務(wù)器的持久連接。 3
mysql_ping() Ping 一個(gè)服務(wù)器連接,如果沒有連接則重新連接。 4
mysql_query() 發(fā)送一條 MySQL 查詢。 3
mysql_real_escape_string() 轉(zhuǎn)義 SQL 語(yǔ)句中使用的字符串中的特殊字符。 4
mysql_result() 取得結(jié)果數(shù)據(jù)。 3
mysql_select_db() 選擇 MySQL 數(shù)據(jù)庫(kù)。 3
mysql_stat() 取得當(dāng)前系統(tǒng)狀態(tài)。 4
mysql_tablename() 不贊成。取得表名。使用 mysql_query() 代替。 3
mysql_thread_id() 返回當(dāng)前線程的 ID。 4
mysql_unbuffered_query() 向 MySQL 發(fā)送一條 SQL 查詢(不獲取 / 緩存結(jié)果)。 4

PHP MySQL 常量

在 PHP 4.3.0 以后的版本中,允許在 mysql_connect() 函數(shù)和 mysql_pconnect() 函數(shù)中指定更多的客戶端標(biāo)記:

PHP:指示支持該常量的最早的 PHP 版本。

常量 描述 PHP
MYSQL_CLIENT_COMPRESS 使用壓縮的通訊協(xié)議。 4.3
MYSQL_CLIENT_IGNORE_SPACE 允許在函數(shù)名后留空格位。 4.3
MYSQL_CLIENT_INTERACTIVE 在關(guān)閉連接前所允許的交互超時(shí)非活動(dòng)時(shí)間。 4.3
MYSQL_CLIENT_SSL 使用 SSL 加密(僅在 MySQL 客戶端庫(kù)版本為 4+ 時(shí)可用)。 4.3

mysql_fetch_array() 函數(shù)使用一個(gè)常量來表示所返回?cái)?shù)組的類型:

常量 描述 PHP
MYSQL_ASSOC 返回的數(shù)據(jù)列使用字段名作為數(shù)組的索引名。  
MYSQL_BOTH 返回的數(shù)據(jù)列使用字段名及數(shù)字索引作為數(shù)組的索引名。  
MYSQL_NUM

返回的數(shù)據(jù)列使用數(shù)字索引作為數(shù)組的索引名。

索引從 0 開始,表示返回結(jié)果的第一個(gè)字段。