文章教程

13.3使用PHP显示MySQL数据库的数据

9/17/2020 9:26:54 PM 人评论 次浏览

13.3 使用PHP显示MySQL数据库的数据

在PHP建立了到MySQL的连接之后,就可以执行SQL语句来查询数据库中的数据。然后,通过PHP函数处理查询后的结果集,以便后续程序使用,或通过整理,将这些数据显示到Web页面上。本节通过示例代码,向读者介绍如何使用PHP函数完成从数据库获取数据、处理数据以及向Web页面显示数据。

说明 本节在PHP程序中使用到的数据,均是来自第12章介绍MySQL操作时,在MySQL自带数据库test中所建的表users。读者可以按12章的讲述来建立该表并插入一些数据,以便理解本章的示例PHP程序。

13.3.1 在PHP执行SQL语句

要从数据库获取数据,首先PHP要执行一条对表操作的SQL语句,包括SELECT、INSERT、UPDATE或DELETE语句。一般情况下,在PHP中执行SELECT语句,会从表中查找出一些记录行。而执行其他语句,只会返回语句是否执行成功的信息。

通过前面的介绍,读者已经知道,在PHP中调用函数mysql_query()将会通知MySQL执行一条SQL语句。代码13-3演示了使用mysql_query()在PHP中执行一条SQL语句。

代码13-3 在PHP程序中执行SQL语句13-3.php


01 <?php

02 $host='localhost';//定义服务器

03 $user_name='root';//定义用户名

04 $password='admin';//定义密码

05

06 $conn=mysql_connect($host,$user_name,$password);//连接MySQL

07 if(!$conn)

08 {

09 die('数据库连接失败:'.mysql_error());

10 }

11 mysql_select_db('test');//选择数据库

12

13 $sql='select id,name,city from users';

14 $result=mysql_query($sql);//获取查询结果

15

16 if($result)

17 {

18 echo'SQL语句:'.$sql.'<br/>已经成功执行!';

19 $num=mysql_num_rows($result);//调用函数mysql_num_row()获得SELECT语句查询结果的行数

20 echo'<br/>该SQL语句查询到<b>'.$num.'</b>行数据';

21 }

22

23 mysql_close($conn);

24 ?>


【代码解析】这段代码在建立了My SQL连接之后,首先在第11行调用函数mysql_select_db()选择数据库test,这个数据库是MySQL自带的一个供用户练习使用的数据库,第12章讲述的示例操作全都是在这个数据库中完成的,本章也有部分示例代码要操作这个数据库。选择完数据库之后,程序第14行调用函数mysql_query()执行一条SELECT语句,该函数返回值是一个资源标识符,用来标识SQL语句执行的结果,这个返回值并不是查询结果。当SQL语句执行成功后,在第19行,调用函数mysql_num_rows()取得SELECT语句所查询到的记录数。

注意 传入mysql_num_rows()的参数是$result,它正是函数mysql_query()的返回值。如果一切正常,该函数会返回如图13-5所示的结果。

图 13-5 调用mysql_query()执行一条SQL语句

通常,mysql_query()也会和mysql_error()一同使用,以便当SQL语句执行出现问题时,可以根据mysql_error()产生的信息查找问题原因。代码13-4演示了使用函数mysql_error(),获得执行SQL语句发生错误时所产生的提示信息。

代码13-4 使用函数mysql_error()获取SQL语句执行错误的信息13-4.php


01 <?php

02 $host='localhost';//定义服务器

03 $user_name='root';//定义用户名

04 $password='admin';//定义密码

05

06 $conn=mysql_connect($host,$user_name,$password);//连接MySQL

07 if(!$conn)

08 {

09 die('数据库连接失败:'.mysql_error());

10 }

11 mysql_select_db('test');//选择数据库

12

13 $sql='select id,name,city,gender from users';

14

15 //这里使用mysql_error()获取SQL语句执行出错时的相关信息

16 $result=mysql_query($sql)OR die("<br/>ERROR:<b>".mysql_error()."</b><br/><br/><br/>产生问题的

17 SQL<br/>".$sql);

18

19 if($result)

20 {

21 echo'SQL语句:'.$sql.'<br/>已经成功执行!';

22 }

23

24 mysql_close($conn);

25 ?>


【代码解析】这段代码在第13行定义了一个SQL语句,查询表users中某些字段的值,但字段gender不是表users中的字段,所以执行这句SQL语句是会产生错误的。程序第16行,其实是一个逻辑表达式形式的语句。该语句使用逻辑运算符O R来决定程序的执行。如果mysql_query()执行成功,那么程序就会继续向下执行,否则,程序就会调用die(),输出一段字符串,同时终止程序的执行,这段字符串里包含了由函数mysql_error()在SQL语句执行发生错误时产生的信息。代码13-4的执行结果如图13-6所示。

图 13-6 使用mysql_error()获取错误信息

从图13-6可以看出,mysql_error()产生了错误信息:Unknown column'gender'in'field list',说明字段gender不存在。

教程类别