注意:未定义的变量:con和警告:mysqli_real_escape_string()期望参数1为mysqli,给定null

时间:2017-02-24 03:06:50

标签: php mysql

目前我有2个问题。 undefined variablemysqli_real_escape_string

这些是noticewarning

注意:未定义的变量:第14行的C:\ xampp \ htdocs \ ngab \ login.php中的con

警告:mysqli_real_escape_string()要求参数1为mysqli,在第14行的C:\ xampp \ htdocs \ ngab \ login.php中给出null

注意:未定义的变量:第16行的C:\ xampp \ htdocs \ ngab \ login.php中的con

警告:mysqli_real_escape_string()要求参数1为mysqli,在第16行的C:\ xampp \ htdocs \ ngab \ login.php中给出null

注意:未定义的变量:第18行的C:\ xampp \ htdocs \ ngab \ login.php中的con

警告:mysqli_real_escape_string()要求参数1为mysqli,在第18行的C:\ xampp \ htdocs \ ngab \ login.php中给出null

注意:未定义的变量:第21行的C:\ xampp \ htdocs \ ngab \ login.php中的con

警告:mysqli_query()要求参数1为mysqli,在第21行的C:\ xampp \ htdocs \ ngab \ login.php中给出null

这些是我的代码:

<!DOCTYPE html>
   <html>
    <head>
    <meta charset="utf-8">
    <title>Login</title>
    <link rel="stylesheet" href="css/style.css" />
    </head>
    <body>
     <?php
     require('db.php');
     session_start();
     if (isset($_POST['username'])){
        $user_ID = stripslashes($_REQUEST['user_ID']);
         $user_ID = mysqli_real_escape_string($con,$user_ID);
         $username = stripslashes($_REQUEST['username']);
         $username = mysqli_real_escape_string($con,$username);
$password = stripslashes($_REQUEST['password']);
$password = mysqli_real_escape_string($con,$password);
    $query = "SELECT * FROM `teacher_table` WHERE user_ID='$user_ID' 
    and username='$username' and password='".md5($password)."'";
$result = mysqli_query($con,$query) or die(mysql_error());
$rows = mysqli_num_rows($result);
    if($rows==1){
    $_SESSION['username'] = $username;
    header("Location: home.php");
     }else{
echo "<div class='form'>
   <h3>User ID/username/password is incorrect.</h3>
    <br/>Click here to <a href='login.php'>Login</a></div>";
}
}else{
   ?>
     <div class="form">
   <h1>Log In</h1>
    <form action="" method="post" name="login">
   <input type="text" name="user_ID" placeholder="User ID" required />
    <input type="text" name="username" placeholder="Username" required />
    <input type="password" name="password" placeholder="Password" required />
    <input name="submit" type="submit" value="Login" />
     </form>
    <p>Not registered yet? <a href='registration.php'>Register Here</a></p>
     </div>
     <?php } ?>
     </body>
     </html>

这是db.php

    <?php
     $connect=mysql_connect("localhost","root","");
     if(!$connect)
     {
       echo "Error".mysql_error();
        }
       $db=mysql_select_db("attendance_db");
       if(!$db)
        {
           echo "Error".mysql_error();
           }
          ?>

感谢。我想知道什么是错的以及如何解决它?

1 个答案:

答案 0 :(得分:1)

您的行看起来像是从某些代码复制而另外一些代码 $user_ID = mysqli_real_escape_string($con,$user_ID); $con是您的数据库连接,现在$con未定义NULLmysqli无法理解。

您还在使用mysql_connect,但这不正确。您无法使用mysqlimysql它们是两个不同的东西。我会通过mysqli了解mysql因为mysql将很快就会被使用。 Mysqli_connect();

$mysqli = new mysqli($host, $user, $pass, $db);
if($mysqli->connect_error) die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
//this will connect to database with mysqli if not it will stop and post error

您的代码$result = mysqli_query($con,$query) or die(mysql_error()); $rows = mysqli_num_rows($result);mysqlmysqli

之间存在太多问题

请查看此处并选择1,但不要混用不同的MySQL API。

http://php.net/manual/en/book.mysqli.php(首选)

http://php.net/manual/en/book.mysql.php(自PHP 7起已弃用并删除)