1

快速而肮脏:我想仅使用 INSERT 权限检查特定行是否已存在。

说明
出于安全目的,我已将我的数据库帐户限制为 INSERT 权限。我意识到在 mysqli_real_escape_string 之后还有其他步骤要采取,但作为 PHP 和 MySQL 的新手,我认为这是阻止注入的最佳方法。

提交后,表单会进行验证检查并尝试创建行,然后通过或捕获 1062 错误并说用户名已经存在。

我现在想使用同一个数据库帐户实现一个抢占式 AJAX 调用。我考虑过发布一个虚拟更新语句(不做任何更改)来检查重复项,但显然没有 SELECT 权限会失败。SELECT right 是我试图避免的主要选择;这是幼稚的吗?解决这个问题的正确方法是什么?

4

1 回答 1

0

您可以使用 INSERT IGNORE INTO 表

http://bogdan.org.ua/2007/10/18/mysql-insert-if-not-exists-syntax.html

有一个与您的问题非常相似的问题:如何在 MySQL 中“如果不存在则插入”?

于 2013-03-16T02:42:20.660 回答