我目前有一个上传照片的脚本,目前它会上传多个图像,每次创建新图像时都会向 mySQL 数据库添加新行。不过,我希望用户最多只能上传 1 张图片。
因此,我更改了注册脚本,将一行直接插入到数据库中,并为每个注册的新用户提供默认图像。
登录后的图像上传脚本当前使用以下行将数据放入数据库
$sql2= "INSERT INTO `profile_photo` (`profile_id`,`title`,`size`,`type`,`reference`)
VALUES ('".$_SESSION['id']."','$title','$size','$type','$pic'); ";
但这不是我想要的工作方式;我相信解决方案是将其更改为 UPDATE 行。
当我更改行时,这会导致问题,我相信我还没有完全掌握更新 mySQL 中行的概念。
请问您能给点建议吗?
最佳答案
$sql2=
"INSERT INTO `profile_photo` (`profile_id`,`title`,`size`,`type`,`reference`)
VALUES ('".$_SESSION['id']."','$title','$size','$type','$pic')
ON DUPLICATE KEY UPDATE title = VALUES(title), size = VALUES(size), type = VALUES(type), reference = VALUES(reference)";
如果 profile_id
列获得索引unique
,就可以解决这个问题。
行为
如果尚未添加 profile_id
,这会将所有数据INSERT
添加到新行中。如果是,它将运行 UPDATE
。
但是你的代码几乎是在乞求 mysql 注入(inject)。在它毁掉你的网站之前,一定要仔细阅读它。
Bobby tables ,供您考虑。
阅读DUPLICATE KEY在这里。
关于使用变量的 PHP SQL 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557130/