如何在mysql中的两个表中插入相同的数据

时间:2010-08-23 06:57:58

标签: php mysql insert

如果我想同时将一些数据插入两个表中,这是否可行? 但是在table2我只是插入所选项目,而不是插入所有数据的table1。 这是单独的查询:

$sql = "INSERT INTO table1(model, serial, date, time, qty) VALUES ('star', '0001', '2010-08-23', '13:49:02', '10')";   

$sql2 = "INSERT INTO table2(model, date, qty) VALUES ('star', '2010-008-23', '10')";   

我可以在table2插入COUNT(model)吗? 我找到了一些脚本,我可以使用它吗?

$sql = "INSERT INTO table1(model, serial, date, time, qty) VALUES ('star', '0001', '2010-08-23', '13:49:02', '10')";
$result = mysql_query($sql,$conn);
if(isset($model))
{
  $model = mysql_insert_id($conn);
  $sql2 = "INSERT INTO table2(model, date, qty) VALUES ('star', '2010-008-23', '10')";   
  $result = mysql_query($sql,$conn);
}
mysql_free_result($result);

5 个答案:

答案 0 :(得分:4)

简单的答案是否定的 - 没有办法在一个命令中将数据插入两个表中。很确定你的第二个剧本不是你想要的。

一般来说,这样的问题可以通过其中一种方法解决,具体取决于您的确切需求:

  • 创建表示第二个表的视图
  • 创建一个触发器以插入到table2中
  • 使用事务确保两个插入都成功或两者都回滚。
  • 创建一个执行两次插入的存储过程。

希望这有帮助

答案 1 :(得分:1)

//如果要插入与第一个表相同的内容

$qry = "INSERT INTO table (one, two, three) VALUES('$one','$two','$three')";

$result = @mysql_query($qry);

$qry2 = "INSERT INTO table2 (one,two, three) VVALUES('$one','$two','$three')";

 $result = @mysql_query($qry2);

//或者如果你想插入表一的某些部分

  $qry = "INSERT INTO table (one, two, three) VALUES('$one','$two','$three')";

  $result = @mysql_query($qry);

  $qry2 = "INSERT INTO table2 (two) VALUES('$two')";

  $result = @mysql_query($qry2);

//我知道它看起来好得令人难以理解,但是它可以工作,你可以继续添加查询只需更改

     "$qry"-number and number in @mysql_query($qry"")

答案 2 :(得分:0)

它不能在一个声明中完成,

如果表是由 innodb 引擎创建的,您可以使用transaction确保数据插入到2个表

答案 3 :(得分:0)

<?php 

if(isset($_POST['register'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];
    $website = $_POST['website'];
    if($username == NULL OR $password == NULL OR $email == NULL OR $website == NULL) {
        $final_report2.= "ALERT - Please complete all fields!";  
    } else {
        $create_chat_user = mysql_query("INSERT INTO `chat_members` (`id` , `name` , `pass`) VALUES('' , '$username' , '$password')");
        $create_member = mysql_query("INSERT INTO `members` (`id`,`username`, `password`, `email`, `website`) VALUES ('','$username','$password','$email','$website')"); 
        $final_report2.="<meta http-equiv='Refresh' content='0; URL=login.php'>";
    }
}
?>
你可以使用这样的东西。有用。

答案 4 :(得分:-1)

一般来说,这是您将数据从一个表单发布到两个表中的方式:

<?php
$dbhost="server_name";
$dbuser="database_user_name";
$dbpass="database_password";
$dbname="database_name";

$con=mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to the database:' . mysql_error());

$mysql_select_db($dbname, $con);

$sql="INSERT INTO table1 (table1id, columnA, columnB) 
         VALUES (' ', '$_POST[columnA value]','$_POST[columnB value]')";

mysql_query($sql);

$lastid=mysql_insert_id();

$sql2=INSERT INTO table2 (table1id, table2id, columnA, columnB)
              VALUES ($lastid, ' ', '$_POST[columnA value]','$_POST[columnB value]')";

//tableid1 & tableid2 are auto-incrementing primary keys 

mysql_query($sql2);

mysql_close($con);

?>

//此示例显示如何将表单中的数据插入到多个表中,我没有显示任何安全措施