php - 影响连接到外键的数据的方式之间的差异

标签 php mysql

我想知道在将数据连接到主键时数据是否存在任何差异(安全性或性能或不良实践)。所以基本上可以说您有一个这样的数据库:

使用者

id | username | password


帖子

id | post | user_id


现在,我们有一个链接到用户的帖子。例如,我们有一个页面在其中删除帖子。因此,例如,当您单击删除按钮时,我们将运行这样的查询:

DELETE FROM posts where id=5;


现在,执行此操作的缺陷在于,您可以以用户身份操作GETid

我学会防止这种情况的方法是通过再次检查该帖子的用户ID是否与当前使用PHP和另一个查询登录的用户ID相同来对其进行检查。

但是我最近尝试了另一种方法,只需更改如下查询:

DELETE FROM posts where id=5 and userid=1;


如果您想让一条消息知道您是否删除了某些内容,则只需获取受影响的行数即可。我的朋友告诉我这是一种非常不好的做法,我可以看出来,但这比第一种方法差多少呢? (假设在两种情况下都将防止sql注入)。总体差异是什么?

最佳答案

您可以切换到使用不太容易猜测的GUID。阅读https://blog.codinghorror.com/primary-keys-ids-versus-guids/可提供更多信息。

关于php - 影响连接到外键的数据的方式之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43634718/

相关文章:

php - JS、PHP、MySQL获取大数据

javascript中的php变量问题

PHP,MySQL - 你能区分匹配的行和受影响的行吗?

针对多个小请求的 PHP 资源优化

php - 从数据库获取值并在下拉列表中显示所选值在 php 中不起作用

PHP foreach 循环将每 2 个项目包裹成一行

php - 另一个嵌套循环 php + mysql 查询

mysql - 在 MySQL 中的字符串末尾选择双字母与单字母

php - 在 MySQL 中减去两个带时间数据类型的字段

安装Xampp后MySql登录报错