繁体   English   中英

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

[英]How to insert same data into two tables in mysql

如果我想同时向两个表中插入一些数据,这可能吗? 但是在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')";   

我可以在表2插入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);

简单的答案是“否”-无法通过一个命令将数据插入到两个表中。 可以肯定,您的第二个脚本不是您想要的。

通常,根据您的确切需求,可以通过以下一种方法解决此类问题:

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

希望这可以帮助

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

$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"")

不能一言以蔽之

如果表是由innodb引擎创建的,则可以使用事务来确保数据插入到2个表中

<?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'>";
    }
}
?>

您可以使用类似这样的东西。 有用。

通常,这是将数据从一种表单发布到两个表中的方式:

<?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);

?>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM