繁体   English   中英

SQL同时插入和更新

[英]SQL insert and update in the same time

嘿,我有一个查询,它将向表中插入新数据,并且我希望同时用我输入的新数据的ID更新外表。 例如:

mysql_query("INSERT INTO `test` (`name`) VALUES ('Mark')");
$query = mysql_query("SELECT `id` FROM `test` WHERE `name` = 'Mark'");
$id = mysql_result($query,0);
mysql_quey("UPDATE `test2` SET `test_id` = $id WHERE `name` = 'Mark'");

如何同时进行? 因为这样做是因为我只会插入新数据,而不会更新其他数据。

Cumps。

尝试这个 :

mysql_query("INSERT INTO `test` (`name`) VALUES ('Mark')");
$id = mysql_insert_id();
mysql_quey("UPDATE `test2` SET `test_id` = $id WHERE `name` = 'Mark'");

我已经在您的值的第一个插入中将反引号更改为单引号,绝不应将反引号用于字段值。

另外,我将其更改为仅使用两个查询,mysql_insert_id()将获得最后插入的ID,而无需查询它。

参考: http : //www.php.net/manual/zh/function.mysql-insert-id.php

首先,不需要选择即可获取ID,为此有mysql_insert_id()

然后,您必须使用事务来使两个查询都感觉像在同时执行:

mysql_query('BEGIN');
mysql_query("INSERT INTO `test` (`name`) VALUES ('Mark')");
$id = mysql_insert_id();
mysql_query("UPDATE `test2` SET `test_id` = $id WHERE `name` = 'Mark'");
mysql_query('COMMIT');

事务确保两个语句都被执行,并且任何其他脚本都不能以任何方式进入它们之间。

暂无
暂无

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

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