THE WORLD'S LARGEST WEB DEVELOPER SITE

PHP 教程

PHP 教程 PHP 简介 PHP 安装 PHP 语法 PHP 变量 PHP 5 echo 和 print 语句 PHP 数据类型 PHP 字符串函数 PHP 常量 PHP 运算符 PHP if...else...elseif 语句 PHP Switch 语句 PHP while 循环 PHP for 循环 PHP 函数 PHP 数组 PHP 数组排序 PHP 全局变量 - 超全局变量

PHP 表单

PHP 表单处理 PHP 表单验证 PHP 表单验证 - 必填字段 PHP 表单验证 - 验证 E-mail 和 URL PHP 表单验证 - 完成表单实例

PHP 高级教程

PHP 多维数组 PHP 日期和时间 PHP Include 文件 PHP 文件处理 PHP 文件打开_读取_关闭 PHP 文件创建_写入 PHP 文件上传 PHP Cookies PHP Sessions PHP 发送电子邮件 PHP 安全的电子邮件 PHP 错误处理 PHP 异常处理 PHP 过滤器(Filter)

PHP 数据库

PHP MySQL 简介 PHP MySQL 连接数据库 PHP MySQL 创建数据库和表 PHP MySQL Insert Into PHP MySQL Select PHP MySQL Where 子句 PHP MySQL Order By 关键词 PHP MySQL Update PHP MySQL Delete From PHP Database ODBC

PHP XML

PHP XML Expat 解析器 PHP XML DOM PHP SimpleXML

AJAX

AJAX 简介 AJAX XMLHttpRequest PHP 和 AJAX 请求 PHP 和 AJAX XML 实例 PHP 和 AJAX MySQL 数据库实例 PHP 和 AJAX responseXML 实例 PHP 和 AJAX Live Search PHP 和 AJAX RSS 阅读器 PHP 和 AJAX 投票

PHP 参考手册

PHP Array 函数 PHP Calendar 函数 PHP Date _ Time 函数 PHP Directory 函数 PHP Error 和 Logging 函数 PHP Filesystem 函数 PHP Filter 函数 PHP FTP 函数 PHP HTTP 函数 PHP libxml 函数 PHP Mail 函数 PHP Math 函数 PHP MySQL 函数 PHP 5 MySQLi 函数 PHP SimpleXML 函数 PHP 5 String 函数 PHP XML Parser 函数 PHP Zip File 函数 PHP 杂项函数 PHP 时区 PHP 测验

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 中。

要激活任何 PHP 扩展库(例如 php_mysql.dll),PHP 指令 extension_dir 要被设为 PHP 扩展库所在的目录。PHP 5 下 extension_dir 取值的一个例子是 c:\php\ext。

注释:如果启动 web 服务器时出现类似如下的错误:"Unable to load dynamic library './php_mysql.dll'",这是因为系统找不到 php_mysql.dll 和 / 或 libmysql.dll。

Runtime 配置

MySQL 函数的行为受到 php.ini 中设置的影响。

MySQL 配置选项:

名称 默认 描述 可更改
mysql.allow_persistent "1" 是否允许 MySQL 的持久连接。 PHP_INI_SYSTEM
mysql.max_persistent "-1" 每个进程中最大的持久连接数目。 PHP_INI_SYSTEM
mysql.max_links "-1" 每个进程中最大的连接数,包括持久连接。 PHP_INI_SYSTEM
mysql.trace_mode "0" 跟踪模式。从 PHP 4.3.0 起可用。 PHP_INI_ALL
mysql.default_port NULL 指定默认连接数据库的 TCP 端口号。 PHP_INI_ALL
mysql.default_socket NULL 默认的 socket 名称。PHP 4.0.1起可用。 PHP_INI_ALL
mysql.default_host NULL 默认的服务器地址。不适用于SQL安全模式。 PHP_INI_ALL
mysql.default_user NULL 默认使用的用户名。不适用于SQL安全模式。 PHP_INI_ALL
mysql.default_password NULL 默认使用的密码。不适用于SQL安全模式。 PHP_INI_ALL
mysql.connect_timeout "60" 连接超时秒数。 PHP_INI_ALL

资源类型

在 MySQL 模块中使用了两种资源类型。第一种是数据库的连接句柄,第二种是 SQL 查询返回的结果集。

PHP MySQL 函数

PHP:指示支持该函数的最早的 PHP 版本。

函数 描述 PHP
mysql_affected_rows() 取得前一次 MySQL 操作所影响的记录行数。 3
mysql_change_user() 不赞成。改变活动连接中登录的用户 3
mysql_client_encoding() 返回当前连接的字符集的名称 4
mysql_close() 关闭非持久的 MySQL 连接。 3
mysql_connect() 打开非持久的 MySQL 连接。 3
mysql_create_db() 不赞成。新建 MySQL 数据库。使用 mysql_query() 代替。 3
mysql_data_seek() 移动记录指针。 3
mysql_db_name() 从对 mysql_list_dbs() 的调用返回数据库名称。 3
mysql_db_query()

不赞成。发送一条 MySQL 查询。

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

3
mysql_drop_db()

不赞成。丢弃(删除)一个 MySQL 数据库。

使用 mysql_query() 代替。

3
mysql_errno() 返回上一个 MySQL 操作中的错误信息的数字编码。 3
mysql_error() 返回上一个 MySQL 操作产生的文本错误信息。 3
mysql_escape_string()

不赞成。转义一个字符串用于 mysql_query。

使用 mysql_real_escape_string() 代替。

4
mysql_fetch_array() 从结果集中取得一行作为关联数组,或数字数组,或二者兼有。 3
mysql_fetch_assoc() 从结果集中取得一行作为关联数组。 4
mysql_fetch_field() 从结果集中取得列信息并作为对象返回。 3
mysql_fetch_lengths() 取得结果集中每个字段的内容的长度。 3
mysql_fetch_object() 从结果集中取得一行作为对象。 3
mysql_fetch_row() 从结果集中取得一行作为数字数组。 3
mysql_field_flags() 从结果中取得和指定字段关联的标志。 3
mysql_field_len() 返回指定字段的长度。 3
mysql_field_name() 取得结果中指定字段的字段名。 3
mysql_field_seek() 将结果集中的指针设定为指定的字段偏移量。 3
mysql_field_table() 取得指定字段所在的表名。 3
mysql_field_type() 取得结果集中指定字段的类型。 3
mysql_free_result() 释放结果内存。 3
mysql_get_client_info() 取得 MySQL 客户端信息。 4
mysql_get_host_info() 取得 MySQL 主机信息。 4
mysql_get_proto_info() 取得 MySQL 协议信息。 4
mysql_get_server_info() 取得 MySQL 服务器信息。 4
mysql_info() 取得最近一条查询的信息。 4
mysql_insert_id() 取得上一步 INSERT 操作产生的 ID。 3
mysql_list_dbs() 列出 MySQL 服务器中所有的数据库。 3
mysql_list_fields()

不赞成。列出 MySQL 结果中的字段。

使用 mysql_query() 代替。

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

不赞成。列出 MySQL 数据库中的表。

使用Use mysql_query() 代替。

3
mysql_num_fields() 取得结果集中字段的数目。 3
mysql_num_rows() 取得结果集中行的数目。 3
mysql_pconnect() 打开一个到 MySQL 服务器的持久连接。 3
mysql_ping() Ping 一个服务器连接,如果没有连接则重新连接。 4
mysql_query() 发送一条 MySQL 查询。 3
mysql_real_escape_string() 转义 SQL 语句中使用的字符串中的特殊字符。 4
mysql_result() 取得结果数据。 3
mysql_select_db() 选择 MySQL 数据库。 3
mysql_stat() 取得当前系统状态。 4
mysql_tablename() 不赞成。取得表名。使用 mysql_query() 代替。 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 开始,表示返回结果的第一个字段。