gpt4 book ai didi

PHP:查询电子邮件是否唯一,如果是,则查询以将记录添加到数据库

转载 作者:行者123 更新时间:2023-11-29 02:31:40 26 4
gpt4 key购买 nike

我没有经验,所以感谢任何帮助。

我希望构建一个 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 :)

关于PHP:查询电子邮件是否唯一,如果是,则查询以将记录添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12367827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com