为什么我的PHP没有插入数据库?

为什么我的PHP没有插入数据库?,php,mysql,login,Php,Mysql,Login,我已经做了一个简单的登录到主网页。如果用户登录成功,用户名、昵称和日期应该插入数据库“userdata”,为什么不是这样?我没有收到任何错误,但我的数据库没有更新,仍然是空的 php: 这里简单介绍一下,strip\u tags不是一个安全的转义函数,我会选择mysqli\u real\u scape\u string乍一看,INSERT块的else应该放在括号中(这样它就可以调用查询和头),并且应该有一个退出在标题()之后呼叫。若要排除查询失败的故障,请将其放入if-语句中,就像您使用if($

我已经做了一个简单的登录到主网页。如果用户登录成功,用户名、昵称和日期应该插入数据库“userdata”,为什么不是这样?我没有收到任何错误,但我的数据库没有更新,仍然是空的

php:


这里简单介绍一下,
strip\u tags
不是一个安全的转义函数,我会选择
mysqli\u real\u scape\u string
乍一看,INSERT块的
else
应该放在括号中(这样它就可以调用查询和
),并且应该有一个
退出
标题()之后呼叫。若要排除查询失败的故障,请将其放入
if
-语句中,就像您使用
if($query){
时所做的那样,也可能需要使用准备好的语句。$connect=mysqli\u connect(“,”,“,,”root\u root”);有效?!你只是假设插入查询成功。这是个坏主意。在处理外部资源时,尤其是数据库时,千万不要假设成功。即使你的SQL在语法上100%正确,你的查询也有无数其他原因可能导致故障转移(例如缺少外键)。
<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();

if($_POST['submit']) {
    $username = strip_tags($_POST['username']);
    $password = strip_tags($_POST['password']);

    $sql = "SELECT id, username, password, nickname FROM users WHERE username = '$username' AND activated = '1' LIMIT 1";
    $connect = mysqli_connect("", "", "", "root_root"); 
    $query = mysqli_query($connect, $sql);

    if ($query) {
        $row = mysqli_fetch_row($query);
        $userId = $row[0];
        $dbUsername = $row[1];
        $dbPassword = $row[2];
        $userLabel = $row[3];
    }


    if ($username == $dbUsername && $password == $dbPassword) {
        $_SESSION['username'] = $username;
        $_SESSION['id'] = $userId;
        $_SESSION['nickname'] = $userLabel;
        $date = date('m/d/y | H:i:s');

        if ($dbPassword == "password") {
            header('Location: firstlogin.php');
        }

        else
        mysqli_query($connect, "INSERT INTO userdata (username, name, timein) VALUES ('$username', '$userLabel', '$date')");
        header('Location: main.php');
        } 
    else {
        $error = "Error: Invalid username or password.";
    }
}
?>