我需要通过单个查询将值插入到两个不同的表中


i need to insert values into two different table with single query

如何联接这两个查询并将它们作为单个查询执行以在两个表中插入值:

$sql = mysql_real_escape_string('INSERT INTO admin_export(datetime, product_name, item_code,quantity,subject,export_no) VALUES').implode(',', $row_data);
$sql2 = "insert into `itflower_exportno` (admin_exportno) values('$exportno1')";
您需要将

两个带有分号的 INSERT 语句分隔到单个变量中。

此 (mysql_*) 扩展从 PHP 5.5.0 开始已弃用,将来将被删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。切换到 PreparedStatements 可以更好地抵御 SQL 注入攻击!

但是,您可以使用以下示例中的事务。

BEGIN;
INSERT INTO users (username, password)
  VALUES('test', 'test');
INSERT INTO profiles (userid, bio, homepage) 
  VALUES(LAST_INSERT_ID(),'Hello world!', 'http://www.stackoverflow.com');
COMMIT;

代码中的是两个不同的插入。MySQL不允许在同一查询中运行多个插入,因此您必须先执行一个插入,然后再执行另一个插入。

但是,您可以在一个查询中在同一表中插入多行,基本上您一次只能在一个表中执行所需的所有插入操作。

你不能这样做。如果因为害怕数据的完整性而想这样做,请使用 事务 .其次,使用合适的事务隔离级别,以确保数据正确读取。