为了能够顺利的使用该函数库,你必须在编译 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");
$query = "SELECT * FROM my_table";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
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);
?>
|
|