13.4 使用PHP维护MySQL数据库的数据
上一节介绍了如何使用PHP函数操作数据库的查询结果集,并将结果集显示在页面上。这节讲述通过Web页面获取数据,来向MySQL数据库添加或更新数据。
13.4.1 从页面获取数据并插入数据库
本小节介绍如何获取Web页面数据,并将获取的数据添加到数据库中。首先建立一个Web页面,供用户输入数据之用,该页可由代码13-9创建。
代码13-9 创建一个用来提交用户信息的HTML页面13-9.html
01 <html>
02 <head>
03 <title>13-9.html</title>
04 </head>
05
06 <body>
07 <b>提交用户信息</b>
08 <form name="form"method="post"action="13-10.php">
09 <table width="75%"border="0"cellpadding="0"cellspacing="2">
10 <tr>
11 <td width="24%"height="29">用户名:</td>
12 <td width="76%"><input name="user_name"type="text"id="user_name"size="20"></td>
13 </tr>
14 <tr>
15 <td height="25">来自城市:</td>
16 <td>
17 <select name="city">
18 <option value="Beijing">北京</option>
19 <option value="London">伦敦</option>
20 <option value="NewYork">纽约</option>
21 <option value="Paris">巴黎</option>
22 <option value="Rome">罗马</option>
23 </select>
24 </td>
25 </tr>
26 <tr>
27 <td height="31">
28 <input type="submit"name="Submit"value="提交"></td>
29 <td> </td>
30 </tr>
31 </table>
32 </form>
33 </body>
34 </html>
【代码解析】第8行的action属性决定本页面在执行第28行代码后的目的地。第17~23行是一个下拉列表框,允许用户选择指定的这5个城市。代码的运行效果如图13-11所示。
由代码13-9可以看出,该页面的表单将会提交给13-10.php处理。在13-10.php中完成获取表单数据,并将表单数据插入数据库。下面就是13-10.php的程序代码。
代码13-10 获取表单数据并将数据插入数据库13-10.php
01 <?php
02 $host='localhost';
03 $user_name='root';
04 $password='admin';
05
06 //通过POST方法传入的表单数据
07 $name=$_POST['user_name'];
08 $city=$_POST['city'];
09
10 if(empty($name)||trim($name)=='')//判断用户名是否为空或者空格
11 {
12 echo'请填写用户名!<a href="13-9.html">返回</a>';
13 exit;
14 }
15
16 $conn=mysql_connect($host,$user_name,$password);
17 if(!$conn)
18 {
19 die('数据库连接失败:'.mysql_error());
20 }
21 mysql_select_db('test');
22
23 //表users中的created_time字段使用通过MySQL函数NOW()取得的系统时间
24 $sql="insert into users set id=7,name='".$name."',city='".$city."',created_time=NOW()";
25 mysql_query($sql)OR die("<br/>ERROR:<b>".mysql_error()."</b><br/>SQL:".$sql);
26 mysql_close($conn);
27
28 echo'数据插入成功,打开<a href="13-7.php">13-7.php</a>查看数据';
29 ?>
【代码解析】这段代码首先获取表单数据,当用户提交数据不为空(或空格)时,就会向数据库插入一条记录。当数据成功插入数据后,代码13-10会输出一个成功信息,并给出到13-7.php的链接,程序13-7.php提供了对表users数据的查询,通过浏览13-7.php查看表users中的所有数据,可以验证程序13-10是否完成了数据插入操作。
说明 代码13-10中的SQL语句给表users的字段id赋值为7,事实上,表的字段id设为主键时,通常也会设置会为自动增加(ATUO_INCREMENT),但在第12章创建users表时,并未设置其字段id为自动增加,所以,代码13-10的SQL语句直接为其赋值为7。如果表users中的id字段设置为自动增加,那么程序中的SQL语句可以不为其赋值,MySQL在执行插入时会为字段id赋值,所赋值为字段id当前最大的值加1。