如果MySQL表中已存在数据,则更新数据
如果MySQL表中已存在数据,则更新数据
这个问题已经有了答案:
我正在使用以下脚本插入数据并上传图像到服务器
if($_SERVER['REQUEST_METHOD']=='POST') { $image = $_POST['image']; $name = $_POST['name']; $rId = $_POST['rId']; $path = "uploads/$rId.png"; $sql = "insert into room_info (r_id,url,name) VALUES ('$rId','$path','$name')"; if(mysqli_query($con,$sql)){ file_put_contents($path, base64_decode($image)); echo "Successfully Uploaded"; } mysqli_close($con); } else { echo "Error"; }
现在,我想修改上面的脚本,使其可以允许我更新mysql表中的数据,最重要的是,如果rId已经存在,则更新上传文件夹中的图像
我知道可以使用以下查询来从mysql中读取数据,以检查特定rId的记录是否已存在
$strSQL = "SELECT * FROM room_info WHERE r_id = '$rId' ";
要进行更新,我可以使用类似以下代码:
update room_info set name = $name where r_id = $rId;
但是,我很好奇,如何将所有这些查询一起使用,以插入记录,检查记录,更新记录,并最后但并非最不重要的是更新上传文件夹中的图像
注意:这不是重复的问题。因为我不仅需要在mysql表中更新数据,还需要在上传文件夹中更新图像。
admin 更改状态以发布 2023年5月24日
使用 INSERT ... ON DUPLICATE KEY UPDATE
在 room_info 表中创建唯一的 'r_id' 列,并更改您的查询
$sql = "insert into room_info (r_id,url,name) VALUES ('$rId','$path','$name')"; to $sql = "insert into room_info (r_id,url,name) VALUES ('$rId','$path','$name') ON DUPLICATE KEY UPDATE url='$path'";