PHP MySQL 函数

PHP MySQL 简介

MySQL 函数允许您访问 MySQL 数据库服务器。

安装

为了能够顺利的使用本类函数,必须在编译 PHP 时添加对 MySQL 的支持。

编译时,只要使用 --with-mysql[=DIR] 配置选项即可,其中可选的 [DIR] 指向 MySQL 的安装目录。

虽然本 MySQL 扩展库兼容 MySQL 4.1.0 及其以后版本,但是它不支持这些版本提供的额外功能。要使用这些功能,请使用 MySQLi 扩展库。

如果要同时安装 mysql 扩展库和 mysqli 扩展库,必须使用同一个客户端库以避免任何冲突。

在 Linux 系统上安装

PHP 4

默认开启了 --with-mysql 选项。此默认行为可以用 --without-mysql 配置选项来禁止。如果启用 MySQL 而不指定安装目录的话,PHP 将使用绑定的 MySQL 客户端连接库。

还有其它应用程序使用 MySQL(例如 auth-mysql)的用户不要用绑定的库,而要指定 MySQL 的安装目录,如这样:--with-mysql=/path/to/mysql。这将强制 PHP 使用随 MySQL 安装的客户端连接库,就可以避免任何冲突。

PHP 5+

MySQL 默认未启用,也没有绑定的 MySQL 库。使用 --with-mysql[=DIR] 配置选项来加入 MySQL 的支持。可以从 MySQL 下载头文件和库。

在 Windows 系统上安装

PHP 4

PHP MySQL 扩展已经编译入 PHP。

PHP 5+

MySQL 默认未启用,因此必须在 php.ini 中激活 php_mysql.dll 动态连接库。此外,PHP 还需要访问 MySQL 客户端连接库。PHP 的 Windows 发行版包括了一个 libmysql.dll,为了让 PHP 能和 MySQL 对话,此文件必须放在 Windows 的系统路径 PATH 中。

Upang aktibahin ang anumang ekstensyon ng PHP (halimbawa, php_mysql.dll), dapat itakda ang instruction extension_dir na ang direktoryo kung saan ay matatagpuan ang ekstensyon ng PHP. Isang halimbawa ng halaga ng extension_dir sa PHP 5 ay c:\php\ext.

Komento:Kung mayroong error tulad ng "Unable to load dynamic library './php_mysql.dll'" kapag nagpapatay ang web server, ito ay dahil ang sistema ay hindi nakakita ng php_mysql.dll at/o libmysql.dll.

Konfigurasyon sa Runtime

Ang pagbabahagi ng mga function ng MySQL ay nakakaapekto ng mga setting sa php.ini.

Mga opsyon ng konfigurasyon ng MySQL:

Pangalan Default 描述 Maaaring baguhin
mysql.allow_persistent "1" Kung pinapayagan ang persistent connections ng MySQL. PHP_INI_SYSTEM
mysql.max_persistent "-1" Ang pinakamataas na bilang ng persistent connections sa bawat proses. PHP_INI_SYSTEM
mysql.max_links "-1" Ang pinakamataas na bilang ng koneksyon sa bawat proses, kasama ang persistent connections. PHP_INI_SYSTEM
mysql.trace_mode "0" Mga paraan ng pagsubaybay. Maaaring gamitin mula sa PHP 4.3.0. PHP_INI_ALL
mysql.default_port NULL Tukuyin ang default na TCP port na ginagamit sa koneksyon sa database. PHP_INI_ALL
mysql.default_socket NULL Ang default na pangalan ng socket. Maaaring gamitin mula sa PHP 4.0.1. PHP_INI_ALL
mysql.default_host NULL Ang default na address ng server. Hindi ginagamit sa SQL secure mode. PHP_INI_ALL
mysql.default_user NULL Ang default na gamit na username. Hindi ginagamit sa SQL secure mode. PHP_INI_ALL
mysql.default_password NULL Ang default na gamit na password. Hindi ginagamit sa SQL secure mode. PHP_INI_ALL
mysql.connect_timeout "60" Sekundo ng pagkakonekta sa timeout. PHP_INI_ALL

Uri ng resursa

Sa modul ng MySQL ay ginamit ang dalawang uri ng resursa. Ang una ay ang koneksyon handle ng database, at ang ikalawa ay ang resulta set ng SQL query.

PHP MySQL 函数

PHP:I-indikahin ang pinakamaagang bersyon ng PHP na sumusuporta sa function.

Function 描述 PHP
mysql_affected_rows() Makuha ang bilang ng mga linya ng record na naapektuhan ng huling MySQL na operasyon. 3
mysql_change_user() Hindi na pinapayagahan. I-baguhin ang aktibong koneksyon na naka-log na user. 3
mysql_client_encoding() Bumalik ang pangalan ng charset ng kasalukuyang koneksyon. 4
mysql_close() I-sasara ang hindi mapapatandaan na MySQL na koneksyon. 3
mysql_connect() Buksan ang hindi mapapatandaan na MySQL na koneksyon. 3
mysql_create_db() Hindi na pinapayagahan. I-crete ng bagong MySQL database. Gamitin ang mysql_query() sa halip. 3
mysql_data_seek() Igalaw ang pointer ng record. 3
mysql_db_name() Bumalik ang pangalan ng database mula sa pagtawag sa mysql_list_dbs(). 3
mysql_db_query()

Hindi na pinapayagahan. I-sent ng isang MySQL na kweri.

Gamitin ang mysql_select_db() at mysql_query() sa halip.

3
mysql_drop_db()

Hindi na pinapayagahan. I-toss (i-delete) ang isang MySQL database.

mysql_list_fields()

3
mysql_errno() Bumalik ang numero ng encoding ng error ng huling MySQL na operasyon. 3
mysql_error() Bumalik ang teksto ng error na ginawa ng huling MySQL na operasyon. 3
mysql_escape_string()

Hindi na pinapayagahan. I-pag-escape ang isang string para sa mysql_query.

Gamitin ang mysql_real_escape_string() sa halip.

4
mysql_fetch_array() Makuha ang isang linya mula sa resulta bilang isang naugnay na array, numero na array, o parehong parehong, ayon sa hinihiling. 3
mysql_fetch_assoc() Makuha ang isang linya mula sa resulta bilang isang naugnay na array. 4
mysql_fetch_field() Makuha ang impormasyon ng column mula sa resulta at ibalik bilang isang bagay. 3
mysql_fetch_lengths() Makuha ang haba ng nilalaman ng bawat larawan sa resulta. 3
mysql_fetch_object() Makuha ang isang linya mula sa resulta bilang isang bagay. 3
mysql_fetch_row() Makuha ang isang linya mula sa resulta bilang numero na array. 3
mysql_field_flags() Makuha ang tanda na nauugnay sa tinukoy na larawan mula sa resulta. 3
mysql_field_len() Bumalik ang haba ng tinukoy na larawan. 3
mysql_field_name() 取得结果中指定字段的字段名。 3
mysql_field_name() Makuha ang pangalan ng larawan sa resulta na tinukoy. 3
mysql_field_seek() Itakda ang pointer ng resulta set sa tinukoy na offset ng larawan. 3
mysql_field_table() Makuha ang pangalan ng talahanayan kung saan nasa laro ang tinukoy na larawan. 3
mysql_field_type() Makuha ang uri ng linya sa resulta set na tinukoy ng linya. 3
mysql_free_result() Liberahin ang memory ng resulta. 4
mysql_get_client_info() Makuha ang impormasyon ng MySQL client. 4
mysql_get_host_info() Makuha ang impormasyon ng MySQL host. 4
mysql_get_proto_info() Makuha ang impormasyon ng MySQL protocol. 4
mysql_get_server_info() Makuha ang impormasyon ng MySQL server. 4
mysql_info() Makuha ang impormasyon ng pinakabagong query. 3
mysql_insert_id() Makuha ang ID na ginawa ng huling INSERT operation. 3
mysql_list_dbs()

Ilista ang lahat ng database sa MySQL server.

mysql_list_fields()

3
Hindi inaamin. Ilista ang mga larawan sa resulta ng MySQL. mysql_list_processes() 4
Ilista ang mga prosesong MySQL.

mysql_list_tables()

Hindi inaamin. Ilista ang mga talahanayan sa MySQL database.

3
mysql_num_fields() Makuha ang bilang ng mga larawan sa resulta set. 3
mysql_num_rows() Makuha ang bilang ng linya sa resulta set. 3
mysql_pconnect() Magbukas ng isang matagal na koneksyon sa MySQL server. 3
mysql_ping() Ping ang koneksyon sa server, kung walang koneksyon ay magsagawa ng muling koneksyon. 4
mysql_query() Magpadala ng isang MySQL query. 3
mysql_real_escape_string() Makalipat ang espesyal na karakter na ginamit sa string ng SQL. 4
mysql_result() Makuha ang datos ng resulta. 3
mysql_select_db() Piliin ang MySQL database. 3
mysql_stat() Makuha ang kasalukuyang estado ng sistema. 4
mysql_tablename() Hindi inaamin. Makuha ang pangalan ng talahanayan. Gamitin ang mysql_query() sa halip. 3
mysql_thread_id() 返回当前线程的 ID。 4
mysql_unbuffered_query() 向 MySQL 发送一条 SQL 查询(不获取 / 缓存结果)。 4

PHP MySQL 常量

在 PHP 4.3.0 以后的版本中,允许在 mysql_connect() 函数和 mysql_pconnect() 函数中指定更多的客户端标记:

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

常量 描述 PHP
MYSQL_CLIENT_COMPRESS 使用压缩的通讯协议。 4.3
MYSQL_CLIENT_IGNORE_SPACE 允许在函数名后留空格位。 4.3
MYSQL_CLIENT_INTERACTIVE 在关闭连接前所允许的交互超时非活动时间。 4.3
MYSQL_CLIENT_SSL 使用 SSL 加密(仅在 MySQL 客户端库版本为 4+ 时可用)。 4.3

mysql_fetch_array() 函数使用一个常量来表示所返回数组的类型:

常量 描述 PHP
MYSQL_ASSOC 返回的数据列使用字段名作为数组的索引名。  
MYSQL_BOTH 返回的数据列使用字段名及数字索引作为数组的索引名。  
MYSQL_NUM

返回的数据列使用数字索引作为数组的索引名。

索引从 0 开始,表示返回结果的第一个字段。