1

我需要在表中插入一个新行,然后获取该行的 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() 相关。我需要它使用插入到潜在客户表中的行的新 ID 来更新联系人表。任何想法将不胜感激。

4

1 回答 1

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);
于 2012-12-20T02:38:52.480 回答