需求
     为了能够顺利的使用该函数库,你必须在编译 PHP 的时候添加 MySQL 的支持。
    
安装
     当你选择了 --with-mysql[=DIR]
     配置选项的时候,你打开了 PHP 访问 MySQL
     数据库的功能。
    
     PHP 4 默认使用了
     --with-mysql 选项,因此要禁用
     MySQL 必须使用
     --without-mysql。在 PHP 4 中,如果你没有在配置选项中指定
     MySQL 的路径信息,PHP 会使用绑定的 MySQL 客户端库。在 Windows 下,没有相关的 DLL 文件,该模块已经内建在了 PHP 内核中。用户如果运行其它使用
     MySQL 的应用(例如同时使用 Apache 模块化方式运行的
     PHP 3 和 PHP 4,或者 auth-mysql 模块)需要指定 MySQL的路径:--with-mysql=/path/to/mysql。这会强迫
     PHP 使用 MySQL 安装的客户端库函数来避免任何冲突。
    
  
     在 PHP 5 中,MySQL 不再默认的开启,MySQL 库也不再和 PHP 绑定,请阅读该 FAQ 以获取更详细的信息。
    
 
    该 MySQL 扩展库无法和 4.1.0 以上版本的 MySQL 一起工作。这时,您需要使用 MySQLi。
    
| 警告 | 
| 
      当该扩展模块与 recode 扩展模块共同使用的时候,可能会造成
      PHP 的崩溃和启动时出现问题。请查询
      recode 扩展获得更多的信息。
      | 
注:  
      如果您需要除 latin(默认)以外其它的字符集,您需要安装有已编译字符集支持的外置(未集成)libmysql。
     
运行时配置
这些函数的行为受到全局配置文件 php.ini 的影响。
     
表格 1. MySQL 配置选项
| 选项名称 | 默认值 | 可变的 | 
|---|
| mysql.allow_persistent | "On" | PHP_INI_SYSTEM | 
| mysql.max_persistent | "-1" | PHP_INI_SYSTEM | 
| mysql.max_links | "-1" | PHP_INI_SYSTEM | 
| mysql.default_port | NULL | PHP_INI_ALL | 
| mysql.default_socket | NULL | PHP_INI_ALL | 
| mysql.default_host | NULL | PHP_INI_ALL | 
| mysql.default_user | NULL | PHP_INI_ALL | 
| mysql.default_password | NULL | PHP_INI_ALL | 
| mysql.connect_timeout | "0" | PHP_INI_SYSTEM | 
     更详细的信息以及 PHP_INI_* 常量的定义,请参考
     
ini_set()。
   
以下是该配置选项的简要解释。
    
- mysql.allow_persistent
       boolean
- 
        是否允许 
        保持连接
        到 MySQL。
        
- mysql.max_persistent
       integer
- 
        每个进程中最大保持连接数。
        
- mysql.max_links
       integer
- 
        每个进程中最大的连接数,包括保持连接。
        
- mysql.default_port
       string
- 
        指定默认连接数据库的 TCP 端口号。如果没有指定默认端口号,侧顺序从 MYSQL_TCP_PORT 
		环境变量,/etc/services 文件中的 mysql-tcp 
		项或者编译时指定的 MYSQL_PORT 常量中获得。Win32 环境下只会使用 
		MYSQL_PORT 常量。
        
- mysql.default_socket
       string
- 
        当使用本地连接的时候,默认的 socket 名称。
        
- mysql.default_host
       string
- 
        默认连接的数据库服务器地址。该参数不能用于安全模式。
        
- mysql.default_user
       string
- 
        默认连接数据库时使用的用户名。该参数不能用于安全模式。
        
- mysql.default_password
       string
- 
        默认连接数据库时使用的密码。该参数不能用于安全模式。
        
- mysql.connect_timeout
       integer
- 
        连接超时秒数。在 Linux 中,这个参数设定了等候来自服务器的响应的时长。
        
资源类型
	   在 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_fetch_array() 函数使用一个常量来表示所返回数组的类型。下面是常量的定义:
  
表格 3. MySQL fetch 常量
| 常量 | 描述 | 
|---|
| MYSQL_ASSOC | 返回的数据列使用字段名作为数组的索引名。 | 
| MYSQL_BOTH | 返回的数据列使用字段名及数字索引作为数组的索引名。 | 
| MYSQL_NUM | 返回的数据列使用数字索引作为数组的索引名。索引从 0 开始,表示返回结果的第一个字段。 | 
范例
     这个简单的例子演示如何连接数据库,执行查询语句,打印返回结果集和断开数据库等一系列基本的 MySQL 操作。
     
| 例子 1. MySQL 扩展范例 | 
<?php/* 连接选择数据库 */
 $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
 or die("Could not connect : " . mysql_error());
 print "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 中打印结果 */
 print "<table>\n";
 while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
 print "\t<tr>\n";
 foreach ($line as $col_value) {
 print "\t\t<td>$col_value</td>\n";
 }
 print "\t</tr>\n";
 }
 print "</table>\n";
 
 /* 释放资源 */
 mysql_free_result($result);
 
 /* 断开连接 */
 mysql_close($link);
 ?>
 | 
 |