无法通过 mysqli 插入到 mysql 数据库


cannot Insert to mysql database through mysqli

嗨,我已经在谷歌上呆了 3 个小时,我只是在我的代码中找不到错误,我总是得到(对不起,您的注册失败。请返回并重试。就像我的注册查询是空的。我想我说得对...感谢您的帮助,我做了一些更改,但仍然无法做到:/

<?php
if(!empty($_POST['username']) && !empty($_POST['password'])&& !empty($_POST['password1']))
{
    $servername = "localhost";
    $name = "root";
    $pass = "";
    $dbname = "users";
    $link = mysqli_connect($servername, $name, $pass, $dbname); 
if (!$link) {
    die("Connection failed: " . mysqli_connect_error());
  }
} 
    $username = mysqli_real_escape_string($link,$_POST['username']);
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
    $password1 = password_hash($_POST['password1'], PASSWORD_DEFAULT);
    $email = mysqli_real_escape_string($link,$_POST['email']);
    $checkusername = mysqli_query($link,"SELECT * FROM users WHERE Username = '".$username."'");
     if(mysqli_num_rows($checkusername) == 1)
     {
        echo "<h1>Error</h1>";
        echo "<p>Sorry, that username is taken. Please go back and try again.</p>";
     }
     else
     {
        $registerquery = mysqli_query($link,"INSERT INTO users (ID,Username,Password,EmailAddress) VALUES(NULL,'".$username."', '".$password."', '".$email."')");
        echo($registerquery);
        if($registerquery)
        {
            echo "<h1>Success</h1>";
            echo "<p>Your account was successfully created. Please <a href='"index.php'">click here to login</a>.</p>";
        }
        else
        {
            echo "<p>Sorry, your registration failed. Please go back and try again.</p>";    
        }       
     }
mysqli_close($link);
?>
  1. 您使用mysql_real_escape_string其余部分mysqli(您应该这样做,因为mysql_*已被弃用)。

  2. 如果没有活动的 mysql 连接,mysql_real_escape_string 将无法工作,并且会返回false,所以$username === false。先连接,然后逃脱。

您需要在此处使用的功能是 mysqli_real_escape_string($link, $var) .

  • 咨询 http://php.net/manual/en/mysqli.real-escape-string.php