【发布时间】:2015-10-16 03:39:14
【问题描述】:
我制作了一个用户可以注册的页面。出于某种原因,应该检查电子邮件是否尚未使用的代码。不工作。
您可以假设与数据库的连接良好。因为用户可以在这篇文章被评论时注册。
@ $db = new mysqli('localhost', 'USERAME', 'PASSWORD', 'DATABASE');
if ($db->query("SELECT * FROM members WHERE email = '$email'")) {
echo "<p id=\"signup_confirmed\">This e-mail is already in use, please try again with another e-mail.</p>";
exit;
}
编辑:
我使用了 php 本身自带的 mysqli 扩展。问题是,这曾经适用于以前的版本。但由于某种原因,它不再存在了。
我用来检查查询是否发送超过 0 行的代码也不起作用。
【问题讨论】:
-
WHERE email = '$email';中的分号 -
您的
if()只是检查您的查询是否成功执行,而不是它是否返回一行。所以即使返回 0 行也会导致查询成功。 -
显示此方法的声明:$db->query(
-
@m0riis 可捕获的致命错误:类 mysqli_result 的对象无法转换为字符串,使用“->num_rows”后回显行数时出现相同的错误
-
这对SQL注入开放;为此使用准备好的语句。数据库因此而被删除。
标签: php mysql sql web-services web