не удалось обновить данные с тем же ключом primay

0

У меня есть сценарий insert и update данных в 1 файл. insert данные успешно, но если я хочу insert же данные, он создаст новую строку с тем же USERID

Первичный ключ - USERID. Я попытался сравнить данные, но это не сработало.

здесь мой сценарий.

$sql=("SELECT * FROM DATA WHERE USERID='$USERID';")
    if ($result->num_rows > 0){ 
    $row = $result->fetch_assoc(); 
    if ((int)$row['USERID'] = (int)$USERID){ 
    $sql=("UPDATE DATA SET SANDI='$SANDI', Photo='$Photo', Name='$Name' WHERE USERID='$USERID';"); 
}
}

Спасибо за помощь.

  • 2
    должно быть if ((int)$row['USERID'] == (int)$USERID){
  • 0
    Сначала вы должны прочитать любое руководство по PHP и MySQL.
Теги:

1 ответ

1
Лучший ответ

Не нужно сначала делать запрос, а затем предпринимать действия на основе этого результата. Используйте опцию ON DUPLICATE оператора SQL INSERT, которая либо вставляет строку для вас, либо обновляет существующую строку.

$sql= ("INSERT INTO DATA 
    SET USERID = '$USERID' ,
        SANDI  = '$SANDI'  , 
        Photo  = '$Photo'  , 
        Name   = '$Name'
ON DUPLICATE KEY UPDATE 
        SANDI  = '$SANDI' , 
        Photo  = '$Photo' , 
        Name   = '$Name'");
  • 0
    Спасибо за свою работу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню