将数据从web表单插入到两个表中


Insert data into two table from a web form

桌上人员

"person_id"person_name"


表格电子邮件

"email_id"电子邮件"person_id"


将数据从web表单插入这些表的sql注释是什么?在web表单中,我有一个用于名称的文本框和用于电子邮件的动态文本框

将表单值读入变量,安全插入MySQL数据库:http://www.php.net/manual/en/function.mysql-query.php

如果只想通过SQL查询实现这一点,则需要编写一个类似的过程

INSERT INTO person (person_name) VALUES ('PERSON_NAME')
INSERT INTO email (email_id,email,person_id) VAUES ('EMAIL_ID','EMAIL',(SELECT LAST_INSERT_ID()))

我假设您可以从您的web表单中发布PERSON_NAME、EMAIL_ID、EMAIL。

我认为从类似自动完成的框中发送电子邮件ID和电子邮件很容易。

假设您使用POST并设置到数据库的连接,我会这样做(我省略验证等,只使用srpt插入数据:

$person_name = mysql_real_escape_string($_POST['person_name']);
$email= mysql_real_escape_string($_POST['email']);
$query = sprintf("INSERT INTO person ('person_name') VALUES ('%s')'",$person_name);
$result = mysql_query($query);
// always set your variables to a default value
$success = false;
// did the query execute successfully?
if($result){
    $success = true;
}
if($success){
  $person_id = mysql_insert_id();
  $query = sprintf("INSERT INTO email ('email','person_id') VALUES ('%s','%s')",$email,$person_id);
  $resultSecond = mysql_query($query);
}

其中涉及几个步骤。您首先需要验证用户的输入,而不仅仅是将其直接放入数据库中。应在服务器上进行验证。您也可以使用Javascript执行客户端验证,但这样做只能增强用户体验,而不能取代服务器端验证。首先,您可以查看PHP的Filter方法,或者查找表单验证库。

当您将其插入数据库时,我强烈建议您使用准备好的语句,而不是使用可怕的转义。

PHP网站上给出的示例非常好,应该会让您开始使用。您也可以结账:

PHP PDO准备的语句
为什么应该使用PHP的PDO进行数据库访问