数据未插入XAMPP数据库


Data not being inserted into the XAMPP Database

我在注册人员时遇到问题。我试过登录,效果很好。

数据库的脚本

创建表格用户信息(userid INT(4)UNSIGNED NOT NULL AUTO_INCREMENT主键,name VARCHAR(25)NOT NULL,密码VARCHAR(15)不为空,电子邮件VARCHAR(35)不为空);

PHP代码

$emailErr = $passMismatch = "";
if( isset($_POST['submit']) ){
    if ( $_SERVER["REQUEST_METHOD"] == "POST" ) {
        $name = $_REQUEST['name'];
        $pwd = $_REQUEST['password'];
        $cpwd = $_REQUEST['cpassword'];
        $email = $_REQUEST['email'];
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $emailErr = "ERROR::Invalid E-Mail Format"; 
        } else $emailErr = "";
        if ( $pwd != $cpwd ) {
            $passMismatch = "ERROR::Passwords Don't Match";
        } else $passMismatch = "";
        $host = "localhost";
        $username = "root";
        $password = "";
        $database = "ontheway";
        $conn = mysqli_connect($host, $username, $password, $database);
        if ( empty($emailErr) && empty($passMismatch) ) {
            $sql = "INSERT INTO userinfo (userid, name, password, email)
                    VALUES (NULL, $name', $pwd', '$email')";

            $result = mysqli_query($conn, $sql);
            if ( !$result ) {
                echo "chala nahi query";
            }
            if ( $result ) {
                session_start();
                $_SESSION['name'] = $name;
                $_SESSION['pass'] = $pass;
                header("location: home.php");    
            }
        }
    }
}

我试着回显问题,但找不到任何问题,$name、$pwd、$cpwd、$email都在回显。甚至错误也完美地显示在表单上。数据库也在连接中。问题出在哪里?请帮忙:)

我总是得到"chala nahi query",这意味着每次运行这个查询sql都不起作用。

表单代码

名称:

                            <input type="text" name="name" /> <br /> 
                            <p>Password: </p>
                            <input type="password" name="password" /> <br />
                            <?php echo '<h1>'.$passMismatch.'</h1>'; ?>
                            <p>Confirm Password: </p>
                            <input type="password" name="cpassword" /> <br />
                            <p>Email: </p>
                            <input type="email" name="email" /> <br />
                            <?php echo '<h1>'.$emailErr.'</h1>'; ?>
                            <input type="submit" name="submit" />
变量周围缺少引号也不需要插入userid,因为它已经是autoincremented
$sql = "INSERT INTO userinfo (`name`, `password`, `email`)
                    VALUES ('".$name."', '".$pwd."', '".$email."')";

查询中缺少一个围绕查询中$name和$pwrd变量的引号,应该是;

$sql = "INSERT INTO userinfo (userid, name, password, email)
                    VALUES (NULL, '$name', '$pwd', '$email')";

你应该研究PDO和绑定参数——更安全。此外,你应该对输入进行消毒,并且你的页面上应该只有1个H1元素。