我在将数据插入和更新到数据库时遇到了一些问题。一切正常,期待一件事 - 数据插入和更新,但也将重复数据插入数据库(每次运行脚本)。我的代码如下所示:
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 />';
答案 0 :(得分: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。