-2

我在向我的数据库中插入和更新数据时遇到了一些问题。一切正常,期待一件事 - 数据正在插入和更新,但也会将重复的数据插入数据库(每次我运行脚本时)。我的代码如下所示:

mysql_query("
INSERT INTO database_name SET
ski_area_rid = '$SKI_RID',
ski_zone_id = '$ZONE_ID', 
ski_zone_zone_name = '$ZONE_NAME', 
ski_zone_zone_sort_order = '$ZONE_SORT_ORDER',
ski_zone_lift_id_lift = '$LIFT_ZONE_ID', 
ski_zone_lift_lift_name = '$LIFT_ZONE_LIFT_NAME', 
ski_zone_lift_lift_id_status = '$LIFT_ZONE_ID_STATUS', 
ski_zone_lift_opening_time = '$LIFT_ZONE_OPENING_TIME', 
ski_zone_lift_lift_update_date = '$LIFT_ZONE_UPDATE_DATE', 
ski_zone_lift_id_lift_type = '$LIFT_ZONE_ID_TYPE', 
ski_zone_lift_lift_type_name = '$LIFT_ZONE_TYPE_NAME'
") OR die(mysql_error());
echo 'DONE<br /><br />';

mysql_query("
UPDATE database_name SET 
ski_area_rid = '$SKI_RID',
ski_zone_id = '$ZONE_ID', 
ski_zone_zone_name = '$ZONE_NAME', 
ski_zone_zone_sort_order = '$ZONE_SORT_ORDER',
ski_zone_lift_id_lift = '$LIFT_ZONE_ID', 
ski_zone_lift_lift_name = '$LIFT_ZONE_LIFT_NAME', 
ski_zone_lift_lift_id_status = '$LIFT_ZONE_ID_STATUS', 
ski_zone_lift_opening_time = '$LIFT_ZONE_OPENING_TIME', 
ski_zone_lift_lift_update_date = '$LIFT_ZONE_UPDATE_DATE', 
ski_zone_lift_id_lift_type = '$LIFT_ZONE_ID_TYPE', 
ski_zone_lift_lift_type_name = '$LIFT_ZONE_TYPE_NAME'
WHERE ski_zone_lift_id_lift = '$LIFT_ZONE_ID' ") OR die(mysql_error());
echo 'UPDATED<br /><br />';
4

1 回答 1

1

因为你总是会插入。您必须检查该值是否存在,如果不存在则插入,如果存在,您将更新它。

看看http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html

http://dev.mysql.com/doc/refman/5.0/en/replace.html

这两个链接可以帮助你

也请使用 PDO 或 Mysqli 而不是 mysql。

于 2013-05-27T12:07:55.223 回答