0

看下面的代码,它确实有效。affiliate如果记录不存在,它会插入到表中。如果它已被插入到affiliate表中,那么它将在表中添加一条新记录phone。但是,它需要在第三次查询时更新表phone_id中的字段affiliate(新的最近记录) - 有没有办法减少这种情况?

$SQLInsert = "INSERT INTO affiliate (affiliate_id, affiliate_phone_id, stock) ";
$SQLInsert .= "VALUES ('1', '$affiliatePhoneID', '$stock') ";
$SQLInsert .= "ON DUPLICATE KEY UPDATE stock = '$stock'";
mysql_query($SQLInsert);
if (mysql_insert_id()) {
    $SQLInsert = "INSERT INTO phone (name) VALUE('$phoneName')";
    $q = mysql_query($SQLInsert);

    // If a record has been inserted into affiliate table and then phone table
    // then it need to update phone_id field in affiliate table. 
    $phone_id = mysql_insert_id();
    $SQLUpdate = "UPDATE affiliate set phone_id = $phone_id WHERE affiliate_id = 1 AND affiliate_phone_id = '$affiliatePhoneID'";
    mysql_query($SQLUpdate) or die(mysql_error());
}
4

1 回答 1

0

也许您可以更改数据库 sheme,以便电话表保存 affilaite 表的 forainkey。所以你不需要更新附属表两次。

如果这不是您想要的,您可以尝试先更新电话表,然后再更新附属表。

于 2012-09-21T10:11:27.837 回答