13.4.3 通过PHP删除数据库数据
前两小节介绍在程序中完成插入和更新数据的操作,这小节讲述通过PHP程序操作数据库的最后一个内容——删除数据库数据。
(1)对13-7.php稍作修改,在用户列表中添加一列,在这一列中为每个用户行添加删除链接,这个链接将链接到一个完成删除功能的PHP程序。如图13-13所示。
(2)这个页面由代码13-12实现。
代码13-12 为用户信息列表添加删除链接13-12.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,created_time from users';
14
15 $result=mysql_query($sql)OR die("<br/>ERROR:<b>".mysql_error()."</b><br/>产生问题的SQL:".$sql);
16 ?>
17 <html>
18 <head>
19 <title>13-12.php</title>
20 <script language="javascript">
21
22 </script>
23 </head>
24 <center>
25
26 <body>
27 <table width="75%"border="0"cellpadding="0"cellspacing="1"bgcolor="#7B7B84">
28 <tr bgcolor="#8BBCC7">
29 <td height="33"><div align="center"><strong>用户ID</strong></div></td>
30 <td><div align="center"><strong>用户名称</strong></div></td>
31 <td><div align="center"><strong>来自城市</strong></div></td>
32 <td><div align="center"><strong>注册时间</strong></div></td>
33 <td><div align="center"><strong>操作</strong></div></td>
34 </tr>
35
36 <?php
37 if($num=mysql_num_rows($result))
38 {
39 while($row=mysql_fetch_array($result,MYSQL_ASSOC))
40 {
41 ?>
42 <tr bgcolor="#FFFFFF">
43 <td height="22"align="right"><?php echo$row['id'];?> </td>
44 <td height="22"> <?php echo$row['name'];?> </td>
45 <td height="22"> <?php echo$row['city'];?> </td>
46 <td height="22"> <?php echo$row['created_time'];?> </td>
47 <td height="22"> <a onclick="javascript:if(confirm('确定要删除用户信息吗?'))
48 return true;else return false;"href="13-13.php?id=<?php echo$row['id'];?>">删除</a> </td>
49 </tr>
50 <?php
51 }
52 }
53 mysql_close($conn);
54 ?>
55
56 </table>
57 </body>
58 </center>
59 </html>
【代码解析】第47行代码使用confirm()函数弹出一个确认对话框。第48行的href属性指定链接目的地并传递一个id参数。
(3)当用户在页面点击“删除”链接时,首先会弹出一个JavaScript确认对话框,如图13-14所示。
如果在这个JavaScript确认对话框中,单击“取消”按钮,程序则仍然停留在该页面。如果单击“确定”按钮,那么程序就会链接到13-13.php,在这个程序中完成从数据库中删除用户数据。请读者仔细看一下代码中JavaScript是如何实现确认和取消功能的。
(4)13-13. php并不复杂,甚至有些简单,13-13.php的完整代码如下所示。
代码13-13 在PHP中删除数据库数据13-13.php
01 <?php
02 if(!isset($_GET['id']))
03 {
04 echo'参数错误!';
05 exit;
06 }
07
08 $id=$_GET['id'];
09 if(empty($id))
10 {
11 echo'用户ID不能为空!';
12 exit;
13 }
14
15 $host='localhost';//定义服务器
16 $user_name='root';//定义用户名
17 $password='admin';//定义密码
18
19 $conn=mysql_connect($host,$user_name,$password);//连接MySQL
20 if(!$conn)
21 {
22 die('数据库连接失败:'.mysql_error());
23 }
24 mysql_select_db('test');//选择数据库
25
26 //先判断是否存在该ID的用户
27 $sql="select*from users where id=$id";
28 $result=mysql_query($sql)OR die("<br/>ERROR:<b>".mysql_error()."</b><br/>SQL:".$sql);
29 if(!mysql_num_rows($result))
30 {
31 echo'用户ID错误!';
32 exit;
33 }
34
35 //删除用户数据
36 $sql="delete from users where id=$id";
37 mysql_query($sql)OR die("<br/>ERROR:<b>".mysql_error()."</b><br/>SQL:".$sql);
38 mysql_close($conn);
39
40 echo'数据删除成功,返回<a href="13-12.php">13-12.php</a>查看数据';
41 ?>
【代码解析】程序最关键的是第8行和第36行,第8行获取传递过来的id参数,第36行执行删除数据的SQL语句。和修改数据一样,删除数据成功后,13-13.php会向Web页面显示一条到用户信息列表页面的链接,以便通过浏览用户列表,验证删除操作是否正确执行。