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

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

PHP MySQL 簡介

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

安裝

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

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

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

如果要同時安裝 mysql 擴展庫和 mysqli 擴展庫,必須使用同一個客戶端庫以避免任何沖突。

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

PHP 4

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

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

PHP 5+

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

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

PHP 4

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

PHP 5+

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

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

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

Runtime 配置

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

MySQL 配置選項:

名稱 默認(rèn) 描述 可更改
mysql.allow_persistent "1" 是否允許 MySQL 的持久連接。 PHP_INI_SYSTEM
mysql.max_persistent "-1" 每個進程中最大的持久連接數(shù)目。 PHP_INI_SYSTEM
mysql.max_links "-1" 每個進程中最大的連接數(shù),包括持久連接。 PHP_INI_SYSTEM
mysql.trace_mode "0" 跟蹤模式。從 PHP 4.3.0 起可用。 PHP_INI_ALL
mysql.default_port NULL 指定默認(rèn)連接數(shù)據(jù)庫的 TCP 端口號。 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ù)。 PHP_INI_ALL

資源類型

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

PHP MySQL 函數(shù)

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

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

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

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

3
mysql_drop_db()

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

使用 mysql_query() 代替。

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

不贊成。轉(zhuǎn)義一個字符串用于 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é)果集中取得列信息并作為對象返回。 3
mysql_fetch_lengths() 取得結(jié)果集中每個字段的內(nèi)容的長度。 3
mysql_fetch_object() 從結(jié)果集中取得一行作為對象。 3
mysql_fetch_row() 從結(jié)果集中取得一行作為數(shù)字?jǐn)?shù)組。 3
mysql_field_flags() 從結(jié)果中取得和指定字段關(guān)聯(lián)的標(biāo)志。 3
mysql_field_len() 返回指定字段的長度。 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 主機信息。 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ù)庫。 3
mysql_list_fields()

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

使用 mysql_query() 代替。

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

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

使用Use mysql_query() 代替。

3
mysql_num_fields() 取得結(jié)果集中字段的數(shù)目。 3
mysql_num_rows() 取得結(jié)果集中行的數(shù)目。 3
mysql_pconnect() 打開一個到 MySQL 服務(wù)器的持久連接。 3
mysql_ping() Ping 一個服務(wù)器連接,如果沒有連接則重新連接。 4
mysql_query() 發(fā)送一條 MySQL 查詢。 3
mysql_real_escape_string() 轉(zhuǎn)義 SQL 語句中使用的字符串中的特殊字符。 4
mysql_result() 取得結(jié)果數(shù)據(jù)。 3
mysql_select_db() 選擇 MySQL 數(shù)據(jù)庫。 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)閉連接前所允許的交互超時非活動時間。 4.3
MYSQL_CLIENT_SSL 使用 SSL 加密(僅在 MySQL 客戶端庫版本為 4+ 時可用)。 4.3

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

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

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

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