所以我想要做的是,如果图像是重复的以将图像写入image2列,但是在同一行中不是新的,如下面的代码那样。
$sql = "insert into uploads(description,lat,lng,image,name)
values('$name','$lat','$lng','$image','$name')
ON DUPLICATE KEY UPDATE
description=$name,lat=$lat,lng=$lng,image=image2,name=$name";
答案 0 :(得分:0)
你没有在你的查询中包含id,这是关键,所以总是会是新的,因为它在插入过程中自动被取消
答案 1 :(得分:0)
如果你想通过mysql实现这一点,那么请采用以下方法:
在字段图片上添加唯一索引
ALTER TABLE `uploads`.`test` ADD UNIQUE `imageIndex` (`image`);
然后使用查询:
$sql = "insert into uploads(description,lat,lng,image,name)
values('$name','$lat','$lng','$image','$name')
ON DUPLICATE KEY UPDATE image2=$image
推荐的解决方案之一可以是:
首先执行select查询以检查表中是否存在图像:
$rowWithImage = Select * from uploads where image = '$image';
如果上述结果有效,那么您可以直接上传。
$sql = "update table uploads set image2=$image where id = '$rowWithImage["id"]' "
希望您掌握逻辑,根据应用程序的要求进行微小的语法+逻辑校正。