文章教程

18.4实战演练1——使用INSERT语句动态添加用户信息

9/17/2020 9:40:31 PM 人评论 次浏览

18.4 实战演练1——使用INSERT语句动态添加用户信息

在上一节的实例中,程序通过form查询了特定用户名的用户信息。下面将使用其他SQL语句实现PHP的数据请求。

下例通过使用adatabase的user数据库表格,添加新的用户信息,具体操作步骤如下。

01 在phpmysql文件夹下建立文件insertform.html,并且输入代码如下。

  <html>
  <head>
     <title>Adding User</title>
  </head>
  <body>
    <h2>Adding users to mysql database.</h2>
    <form action="formhandler.php" method="post">
      Select gender:
  	 <select name="gender">
  	   <option value="male">man</option>
  	   <option value="female">woman</option>
  	 </select><br />
      Fill user name:
       <input name="username" type="text" size="20"/> <br />
  	Fill user age:
       <input name="age" type="text" size="3"/> <br />
  	Fill user info:
       <input name="info" type="text" size="60"/> <br />
  	 <input name="submit" type="submit" value="Add"/>
    </form>
  </body>
  </html>

02 在phpmysql文件夹下建立文件insertformhandler.php,并且输入代码如下。

  <html>
  <head>
     <title>User adding</title>
  </head>
  <body>
     <h2>adding new user.</h2>
  <?php
      $username = $_POST['username'];
  	$gender = $_POST['gender'];
  	$age = $_POST['age'];
  	$info = $_POST['info'];
  	if(!$username and !$gender and !$age and !$info){
  	    echo "Error: There is no data passed.";
  		exit;
  	}
      if(!$username or !$gender or !$age or !$info){
  	    echo "Error: Some data did not be passed.";
  		exit;
  	}
  	if(!get_magic_quotes_gpc()){
  	    $username = addslashes($username);
  		$gender = addslashes($gender);
  		$age = addslashes($age);
  		$info = addslashes($info);
  	}
  		@ $db = mysqli_connect('localhost','root','753951');
  		mysqli_select_db($db,'adatabase');
  		if(mysqli_connect_errno()){
  	 	 echo "Error: Could not connect to mysql database.";
  	 	 exit;
  		}
  		$q = "INSERT INTO user( name, age, gender, info) VALUES ('$username',$age,'$gender',
'$info')";
  		if( !mysqli_query($db,$q)){
  		   echo "no new user has been added to database.";
  		}else{
  		   echo "New user has been added to database.";
  		};
  		mysqli_close($db);
  ?>
  </body>
  </html>

03 运行insertform.html,运行结果如图18-5所示。

image

图18-5 insertform.html

04 单击“Add”按钮,页面跳转至insertformhandler.php,并且返回信息结构如图18-6所示。

image

图18-6 insertformhandler.php页面

这时数据库user表格中,就被添加了一个新的元素。

【案例讲解】

(1)insertform.html文件中,建立了user表格中除“id”外每个字段的文本框。

(2)insertformhandler.php文件中,建立MySQL连接,生成连接对象等操作都与上例中的程序相同。只是改变了SQL请求语句的内容为$q = "INSERT INTO user( name, age, gender, info) VALUES ('$username',$age,'$gender', '$info')";。

(3)其中name、gender、info字段为字符串型,所以'$username'、'$gender'、'$info'三个变量要以字符串形式加入。

教程类别