获取SQL数据错误

Getting SQL Data wrong?

本文关键字:错误 数据 SQL 获取      更新时间:2023-09-26

所以我在PHP中有一个if语句来检查SQL表中是否已经在使用用户名/电子邮件,但当我测试它时,它一直说用户名/电子邮件已经在使用,即使它没有。所以我假设我做了if语句或数据检索错误,但我找不出我做错了什么。此外,当我检查字段是否为空时,即使它们为空,它也会继续,而不要求他们填写所有字段。因此,如果有人能告诉我这些代码行中出了什么问题,我将不胜感激。谢谢

$sql="SELECT username, email FROM table_name";
$result=mysqli_query($con,$sql);
if($result === FALSE){
}else{
 $row=mysqli_fetch_array($result);
}
if (empty($_POST['firstname']) || empty($_POST['lastname']) || empty($_POST['username']) || empty($_POST['email']) || empty($_POST['password']) || empty($_POST['password2'])) {
 if(!($_POST['username'] == $row['username']) && ($_POST['email'] == $row['email'])) {
 } else {
     echo '<script type="text/javascript">'
    , 'window.alert("That username or email is already in use.")'
    , '</script>';
 }
} else {
     echo '<script type="text/javascript">'
    , 'window.alert("Please fill in all the fields.")'
    , '</script>';
}

如果从数据库中获取一个名为$row的数组,则必须遍历该数组并检查是否找到用户名||电子邮件。(注意,我已将$row -> $rows更名为

if($result === FALSE){
}else{
 $rows=mysqli_fetch_array($result);
}
if(isset($_POST['firstname']) && isset($_POST['lastname']) && isset($_POST['username']) && isset($_POST['email']) && isset($_POST['password']) && isset($_POST['password2'])){
    foreach ($rows as $row) {
        if($row['username'] == $_POST['username'] || $row['email'] == $_POST['email']){
           echo '<script type="text/javascript">'
           , 'window.alert("That username or email is already in use.")'
           , '</script>';
           break;
        }
    }
}
else{
echo '<script type="text/javascript">'
    , 'window.alert("Please fill in all the fields.")'
    , '</script>';
}

希望我用平板电脑做得很好。

试试这个代码:

SELECT username, email FROM table_name WHERE username="user" AND email="email"

您需要传递查询列信息以与数据库进行比较,否则它将返回数据库中的所有行。因此,您将始终获得除FALSE之外的返回值。