我没有经验,所以感谢任何帮助。
我希望构建一个 PHP 来确认用户注册具有唯一的电子邮件地址。如果唯一,则添加到sql数据库,并回显各自的值。
这就是我所拥有的 - 如果电子邮件地址重复,则会生成回显值,但如果电子邮件地址是唯一的,则不会生成回显值并且不会更新数据库。
<?php
$email= $_GET["email"];
$firstname = $_GET["firstname"];
$lastname = $_GET["lastname"];
$con = mysql_connect("user","db","pass");
mysql_select_db("db");
$query1 = "SELECT * FROM `db` WHERE `Email` = '$email'";
$result = mysql_query($query1);
if ( mysql_num_rows ($result) == 1 )
{$value="Already registered";
}
else
{
mysql_query("INSERT INTO db (Email, FirstName, LastName) VALUES ('$email','$firstname','$lastname')");
mysql_close($con);
$value="Confirmed";
}
echo $value;
不要获取所有行,而是只获取其中的一行。它将节省大量内存。
$query1 = "SELECT 1 FROM `db` WHERE `Email` = '$email' LIMIT 1";
然后是下面一行
if ( mysql_num_rows ($result) == 1 )
逻辑上将是正确的。否则,如果数据库中有 2 条或更多记录,则结果为 false。通过我的修复if
将是合乎逻辑的。
另一个解决方案是选择行数,但由于电子邮件在数据库中是唯一的,因此没有必要执行类似的操作
$query1 = "SELECT COUNT(*) FROM `db` WHERE `Email` = '$email'";
然而,通过这种方式,您可以检查结果而不用担心它是空的,而不是检查结果中的行数。但同样,由于数据库的逻辑是一封电子邮件只包含一次,因此没有必要检查有多少封电子邮件,因为结果将是 0 或 1 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)