将数据插入并更新到mysql数据库中

时间:2013-05-27 11:58:21

标签: php mysql insert-update

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

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 />';

1 个答案:

答案 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。