Дикохозяйка (wildwife) wrote in ru_php,
Дикохозяйка
wildwife
ru_php

php sql update/insert

Просьба не бросаться помидорами, я - новичок. :)
Вопрос в следующем, имеется некий алгоритм вставки/изменения в базу:

mysql_query("UPDATE ...");
if (mysql_affected_rows()==0)
{
mysql_query("INSERT INTO ...");
...

Проблема возникает, когда система пытается сделать апдейт, с теми же данными, что и записаны в базе – тогда никакого апдейта не происходит, вместо этого задействуется insert, что приводит к многочисленным дублированиям строк. Вопрос, как бы это по-элегантней исправить, самое простое, что приходит в голову, это сначало сделать запрос-селект, есть ли уже такая строка в базе. Если да – апдейт, если нет – вставить. Но может есть что-то покрасивее? Может в самом sql какая-то опция? Еще раз, прошу не глумится, и заранее извиняюсь, если вопрос слишком детский.

Апдейт: спасибо всем! Помогло replace - если строчка есть, то оно обновляет, а если нет - то вставляет. Здорово! Как раз то, что и надо.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 24 comments