php - 注册页面、电子邮件或密码是否存在检查

标签 php mysqli prepared-statement

我使用准备好的语句用 PHP 编写了一个注册页面。我的问题很简单。当用户注册时,我想确保他们没有使用与其他人相同的用户名或电子邮件进行注册。因此,作为我的验证程序的一部分,我运行了两个查询,一个是检查电子邮件是否存在,另一个是检查用户名是否存在。我的问题是,有没有更好的方法?我觉得运行多个查询可能会以某种方式牺牲一些性能。这样的查询会显着影响性能吗?我意识到我可以运行 "SELECT * FROM table WHERE username = ? or email = ?", 但我希望用户知道他们出了什么问题,而不仅仅是一个通用的“您的用户名或当前正在使用电子邮件,请随时尝试和错误地查找它是什么”。可能是我对速度有点偏执,但我只是想看看其他人对此事的看法。

最佳答案

使用 OR 运行您的查询并检查返回的结果以报告您找到的确切内容。

但是,根据数据库内部结构和索引,两个单独的查询可能比用“或”运算在一起更快。您最好对所有案例进行基准测试(找到一个,找到两个,都没有找到)以获得关于您的环境的明确答案。

关于php - 注册页面、电子邮件或密码是否存在检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310160/

相关文章:

php - 为自定义字段使用自定义分类术语 ID

php - Vcalendar 在 Outlook 桌面应用程序中显示一分钟时差

php - 从 PHP 传递时 SQL 返回错误

PHP:如何在生成器函数后进行清理

mysql - 将准备好的语句的结果存储为 mysql 中的表?

php - CodeIgniter 选择查询

php - 在 Woocommerce 中重命名多个订单状态

php - 进行多个mysql连接的最佳实践

PHP - MySQLi 准备语句 : unknown "max" function (Error 1630)

Java PreparedStatement RETURN_GENERATED_KEYS 不工作