运行插入查询抓取ID并使用Id更新另一个表

时间:2012-12-20 02:15:09

标签: php mysql mysql-insert-id

我需要在表中插入一个新行,然后获取该行的ID并更新另一个表。 这就是我所拥有的:

$leadSQL="INSERT INTO $leadsTable (leadName, leadStatus, leadDescription, leadOpportunity, leadSource, leadSourceDescription, id, leadSince, contactID)
                     VALUES ('$_POST[leadName]', '$_POST[leadStatus]', '$_POST[leadDescription]', '$_POST[leadOpportunity]', '$_POST[leadSource]', '$_POST[leadSourceDescription]','$_POST[id]','$leadSince','$_POST[contactID]')";
$leadQuery = mysql_query($leadSQL);
$lastLeadID = mysql_insert_id();
$updateContactSQL = "UPDATE $contactsTable SET leadID = $lastLeadID WHERE contactID = $_POST[contactID]";
$updateContactQuery = mysql_query($updateContactSQL);

一切正常......除了它将重复的行插入到潜在客户表中。我已经尝试将更新查询放入if语句并且它做了同样的事情(这只是为了尝试“某事”)。如果我删除$ lastID = mysql_insert_id();它只插入一行,但显然不更新联系人表。所以我很确定它必须与mysql_insert_id()。我需要它用插入到lead表中的行的新id来更新contacts表。任何想法将不胜感激。

1 个答案:

答案 0 :(得分:0)

出于所有意图和目的,你应该有所作为。

你可能会尝试一点点修剪脂肪。由于您不需要查询资源(它是INSERT),您可以删除该变量。我只是将mysql_insert_id()放在更新语句中。

像这样:

$leadSQL="INSERT INTO $leadsTable (leadName, leadStatus, leadDescription, leadOpportunity, leadSource, leadSourceDescription, id, leadSince, contactID)
                     VALUES ('$_POST[leadName]', '$_POST[leadStatus]', '$_POST[leadDescription]', '$_POST[leadOpportunity]', '$_POST[leadSource]', '$_POST[leadSourceDescription]','$_POST[id]','$leadSince','$_POST[contactID]')";
mysql_query($leadSQL);
$updateContactSQL = "UPDATE $contactsTable SET leadID = '".mysql_insert_id()."' WHERE contactID = $_POST[contactID]";
mysql_query($updateContactSQL);