快速和脏:我想仅使用INSERT权限来检查特定行是否已存在。
解释
出于安全考虑,我已将数据库帐户限制为INSERT权限。我意识到在mysqli_real_escape_string之后还有其他步骤,但作为PHP和MySQL的新手,我认为这是阻止注射的最佳方法。
提交后,表单会进行验证检查并尝试创建行,并传递或捕获1062错误,并说用户名已存在。
我现在想要使用相同的DB帐户实现抢占式AJAX调用。我考虑发布一个虚拟更新语句(不做任何更改)来检查重复,但显然没有SELECT权限就失败了。选择权是我试图避免的主要权利;这是天真的,这是什么方法可以解决这个问题?
答案 0 :(得分:0)
您可以使用INSERT IGNORE INTO表
请参阅http://bogdan.org.ua/2007/10/18/mysql-insert-if-not-exists-syntax.html
有一个与您非常相似的问题:How to 'insert if not exists' in MySQL?