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(); を削除すると 1 行だけ挿入しますが、明らかに連絡先テーブルを更新しません。したがって、それは 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 に答える