无法使用相同的主键更新数据

时间:2018-04-15 08:12:57

标签: php mysql

我在1个文件中有脚本insertupdate数据。 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';"); 
}
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

不需要先进行查询,然后根据该结果采取行动。使用SQL INSERT语句的ON DUPLICATE选项,该选项将为您插入行或更新现有行。

$sql= ("INSERT INTO DATA 
    SET USERID = '$USERID' ,
        SANDI  = '$SANDI'  , 
        Photo  = '$Photo'  , 
        Name   = '$Name'
ON DUPLICATE KEY UPDATE 
        SANDI  = '$SANDI' , 
        Photo  = '$Photo' , 
        Name   = '$Name'");