mysql&php编译融合经典
2007-11-11 15:14:32 来源:WEB开发网六、测试
OK,现在我们已经把数据导入到数据库中了。现在我们来处理这些数据。把下面的文字存入一个文件中,把该文件存在Web服务器的文档目录下,后缀名为.php3。
<html>
<body>
<?php
$db = MySQL(和PHP搭配之最佳组合)_connect("localhost", "root");
MySQL(和PHP搭配之最佳组合)_select_db("mydb",$db);
$result = MySQL(和PHP搭配之最佳组合)_query("SELECT * FROM employees",$db);
printf("First Name: %s<br>\n", MySQL(和PHP搭配之最佳组合)_result($result,0,"first"));
printf("Last Name: %s<br>\n", MySQL(和PHP搭配之最佳组合)_result($result,0,"last"));
printf("Address: %s<br>\n", MySQL(和PHP搭配之最佳组合)_result($result,0,"address"));
printf("Position: %s<br>\n", MySQL(和PHP搭配之最佳组合)_result($result,0,"position"));
?>
</body>
</html>
我来解释一下上面的代码。MySQL(和PHP搭配之最佳组合)_connect()函数负责以指定的用户名(本例中用户名是root)连接到指定机器(在本例中机器是本机localhost)上的MySQL(和PHP搭配之最佳组合)数据库。如果您想指定用户口令,您也可以把它送给这个函数。连接的结果保存在变量$db中。
随后,MySQL(和PHP搭配之最佳组合)_select_db()函数告诉PHP,我们要读取的数据库是mydb。我们可以在程序中同时连接到多台机器上的多个数据库,但目前我们还是限于连接一个数据库。
接下来,MySQL(和PHP搭配之最佳组合)_query()函数完成最复杂的部分。利用刚才得到的连接结果标识,该函数把一行SQL语句送给MySQL(和PHP搭配之最佳组合)服务器去处理。返回的结果保存在变量$result中。
最后,MySQL(和PHP搭配之最佳组合)_result()函数显示SQL查询命令所得到的各个字段的值。利用变量$result,我们就可以找到第一条记录,记录号是0,并将其中各字段的值显示出来。
如果您以前没用过Perl或C语言,那么printf函数的语法格式会显得很奇怪。在上面的每一行程序中,%s代表表达式第二部分中的那个变量(例如,MySQL(和PHP搭配之最佳组合)_result($result,0,"position"))应该以字符串的形式显示出来。想更深入了解printf,请参阅PHP文档。
这一课我们就讲到这里了。我们已经成功地编译、安装和设置了MySQL(和PHP搭配之最佳组合)和PHP,并且运行了一个简单的程序来读取数据库中的信息。在 第二课里,我们会做一些更复杂的工作,来显示多行记录的数据,甚至与数据库互相交换数据。
一、 while循环
在这一课里,我们将会继续深入下去,使用PHP和MySQL(和PHP搭配之最佳组合)来写出一些简单而有用的页面。我们从昨天创建的数据库开始,显示库中的数据,但是会再稍微加以润色。
首先,我们用下面的代码来查询数据库内容。
<html>
<body>
<?php
$db = MySQL(和PHP搭配之最佳组合)_connect("localhost", "root");
MySQL(和PHP搭配之最佳组合)_select_db("mydb",$db);
$result = MySQL(和PHP搭配之最佳组合)_query("SELECT * FROM employees",$db);
echo "<table border=1>\n";
echo "<tr><td>姓名</td><td>职位</td></tr>\n";
while ($myrow = MySQL(和PHP搭配之最佳组合)_fetch_row($result)) {
printf("<tr><td>%s %s</td><td>%s</td></tr>\n", $myrow[1], $myrow[2], $myrow[3]);
}
echo "</table>\n";
?>
</body>
</html>
您可能已经注意到,我们在这个程序里加进了一些新东西。最明显的是while()循环。该循环是说,只要数据库里还有记录可读(使用MySQL(和PHP搭配之最佳组合)_fetch_row()函数),那就把该记录赋给变量$myrow,然后执行大括号({})内的指令。仔细看一下这里,这部分是比较重要的。
我们应该注意一下MySQL(和PHP搭配之最佳组合)_fetch_row()函数。这里有一点小问题,它返回的是一个数组,必须以数组下标来访问其中的某个字段。第一个字段下标为0,第二个是1,依此类推。在执行某些复杂查询时,这么做简直实在是太烦琐了。
现在我们更仔细地研究一下循环过程。程序前几行我们在第一课的例子中已经看到过了。然后,在while()循环中,我们从查询结果中读取一条记录并把该记录赋给数组$myrow。接着,我们用printf函数把数据中的内容显示在屏幕上。随后,循环反复执行,读取下一条记录赋给$myrow。这样继续下去,直到所有记录都已被读取完为止。
使用while()循环的一个好处是,如果数据库查询没有返回任何记录,那您也不会收到错误信息。在刚执行循环语句时,循环条件就不满足,不会有任何数据赋给$myrow,程序就直接往下运行了。
但是如果查询未返回任何数据,我们怎么让用户知道这一点呢?我们也许该提供点儿相关的消息给用户吧。这是可以做到的,下面我们就看看怎么做。>>
更多精彩
赞助商链接