使用PHP操作MySQL

从PHP 5和MySQL 4.1起,可以使用更新的Improved MySQL函数(称为mysqli扩展)。这些函数提供了改进的性能并且利用了其他特性(还带来了其他好处)。强烈建议使用mysqli扩展操作MySQL,而不是早期的连接方式。

连接到MySQL

与MySQL交互时,第一步(连接到服务器)需要适当命名的mysqli_connect()函数:

$dbc = mysqli_connect (hostname, username, password, db_name);

前三个参数(主机、用户名和密码)基于MySQL内建立的用户和特权(见附录A,以了解更多信息)。通常(但并非总是这样),主机值是localhost。第四个参数是要使用的数据库的名称。这相当于在MySQL客户端内使用USE databasename命令。

如果建立了连接,$dbc变量(database connection的简写)将成为所有后续数据库交互的一个参考点。用于处理MySQL的大多数PHP函数都可以把这个变量作为它的第一个参数。

如果发生一个连接问题,可以调用mysqli_connect_error(),它返回连接错误消息。它不带参数。

$dbc = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die ('Could not connect to   MySQL: ' . mysqli_connect_error() );

在函数调用前面放置一个错误控制运算符(@),可以防止在Web浏览器中显示PHP错误。这是一种首选的做法,因为错误将由OR die()子句处理。

指定数据集编码方式

连接到数据库后,我们还需要设置在数据库间传输字符时所用的默认字符编码。

mysqli_set_charset($dbc, 'utf8');

执行查询

一旦你成功地连接到并选择一个数据库,就可以开始执行查询。这些查询可以是诸如插入、更新和删除之类的基本查询,或者是返回许多行的复杂联结中所涉及的查询。无论如何,用于执行查询的PHP函数都是mysqli_query()

$result = mysqli_query($dbc, $query);

检索查询结果

处理SELECT查询结果的主要工具是mysqli_fetch_array(),它带有一个查询结果变量,并以数组格式一次返回一行数据。你将希望在一个循环内使用这个函数,只要有更多的行,循环就会持续访问返回的每一行。从查询中读取每条记录的基本构造如下:

while ($row = mysqli_fetch_array($result)) {
 // Do something with $row.
 }

mysqli_fetch_array()函数带有一个可选的参数,用于指定返回的数组的类型:关联数组、索引数组,或者这两者。建议使用关联数组,这样即使表结构或者查询发生变化,它也会继续工作。

使用mysqli_fetch_array()函数时,可以采取的一个可选的步骤是:一旦使用查询结果信息完成了工作,即可释放这些信息:

mysqli_free_result ($result);

这一行会消除$result占用的系统开销(内存)。该步骤是可选的,因为PHP将在脚本末尾自动释放资源,但是就像使用mysqli_close()一样,这是一种良好的编程风格。

关闭MySQL连接

你的脚本中的最后(虽然是可选的)一步是,一旦使用完现有的MySQL连接,就要关闭它:

mysqli_close($dbc);

这个函数不是必需的,因为在脚本的末尾,PHP会自动关闭连接,但是纳入这个函数确实是一种良好的编程风格。

results matching ""

    No results matching ""