У меня есть сценарий 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';");
}
}
Спасибо за помощь.
Не нужно сначала делать запрос, а затем предпринимать действия на основе этого результата. Используйте опцию 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'");
if ((int)$row['USERID'] == (int)$USERID){