使用变量的 PHP SQL 更新

标签 php mysql variables

我目前有一个上传照片的脚本,目前它会上传多个图像,每次创建新图像时都会向 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/

相关文章:

php - 如何在mysql中基于语义进行搜索

mysql - 使用 IN() 子句导致 Filesort

mysql - 如何在sql中使用多个查询

mysql - 在MySql中查找不间断空间

带小数到数字的 PHP 字符串

linux - 读取txt文件并将值解析为bash脚本

php - 构造 `print` 是如何工作的?

javascript - PHP - 简单的ajax将查询发送到服务器

PHP 扩展已启用但不起作用

java - C++/Java 引用变量