gpt4 book ai didi

php - 检查 3 个表以查看其中是否存在电子邮件

转载 作者:行者123 更新时间:2023-11-30 00:22:13 25 4
gpt4 key购买 nike

我正在尝试检查我拥有的 3 个用户表中是否存在电子邮件地址。

我尝试过这个:

$query = "SELECT id FROM pims, dms, users WHERE pims.email = '{$email}' OR dms.email = '{$email}' OR users.email = '{$email}'";

$result = mysqli_query($connection, $query);
if (!result) {
die("Database query failed: " . mysqli_error($result));
}

if (mysqli_num_rows($result) != 0) {
$duplicate_email_error = "That email already exists";
$errors = array_merge($errors, $duplicate_email_error);
}

但是好像不行。有人可以帮忙吗?

<小时/>

事实证明 PHP 没有捕获错误是由于以下原因:

上面代码的最后 4 行应为:

            if (mysqli_num_rows($result) != 0) {
$duplicate_email_error = array("That email already exists");
$errors = array_merge($errors, $duplicate_email_error);
}

这样,$errors 就不再为空,并且代码会向用户发出警告。

但是,戈登的建议是必须的。

最佳答案

您的查询正在对三个表进行笛卡尔积,然后过滤掉其中一封电子邮件不匹配的行 - 计算量很大且不准确。

以下内容应该满足您的要求:

  SELECT id FROM pims WHERE email = '{$email}' UNION ALL
SELECT id FROM dms WHERE email = '{$email}' UNION ALL
SELECT id FROM users WHERE email = '{$email}';

关于php - 检查 3 个表以查看其中是否存在电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23145610/

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