嘿我有一个查询会在表格中插入一个新数据,我希望在同一时间用我输入的新数据的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。
答案 0 :(得分:2)
试试这个:
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/en/function.mysql-insert-id.php
答案 1 :(得分:0)
首先,您不需要select来获取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');
事务确保两个语句都被执行,并且不会以任何方式在它们之间传递任何其他脚本。