警告:mysqli_real_escape_string()期望参数1为mysqli,null

时间:2016-11-25 21:23:10

标签: php mysql mysqli

有人可以帮我理解这意味着什么因为当我查看我的代码并将其与从中学习的人进行比较时我似乎没有任何错误的问题我甚至试图复制他的代码而我仍然得到

  

警告:mysqli_real_escape_string()期望参数1为mysqli,   第15行/home/daltonnapala/public_html/mysql/Grab.php中给出的null

     

警告:mysqli_query()期望参数1为mysqli,null给定   在第17行的/home/daltonnapala/public_html/mysql/Grab.php

     

警告:mysqli_num_rows()期望参数1为mysqli_result,   第19行/home/daltonnapala/public_html/mysql/Grab.php中给出的null

现在我有点明白,这个期望参数1是mysqli,null,因为它没有变量或者什么,因为我读了一些问题和答案,但我仍然不完全理解,为什么我有这些警告或错误。

以下是我的注册页面代码:

<?php

if (array_key_exists('email', $_POST) OR array_key_exists('password', $_POST)){

    if ($_POST['email'] == ''){

        echo "<p>Please put in your email!</p>";

    } else if ($_POST['password'] == ''){

        echo "<p>Please put in your Password!</p>";

    } else {

        $query = "SELECT `id` FROM `users` WHERE email ='".mysqli_real_escape_string($link, $_POST['email'])."'";

        $result = mysqli_query($link, $query);

            if(mysqli_num_rows($result) > 0){

                echo "<p>That email address has already been sign in</p>";

            }

    }

}

$link = mysqli_connect("localhost", "examplebb", "kle]cwdum)#]", "examplebb");
if (mysqli_connect_error()) {

die("Could not connect to database");

}

 ?>

<form method="post">

<input name="email" type="text" placeholder="Email">

<input name="password" type="password" placeholder="Password here">

<input type="submit" value="Sign up!">

</form>

1 个答案:

答案 0 :(得分:0)

在执行mysqli命令后,我似乎是在定义$ link。首先必须定义$ link,然后才能执行mysqli命令。因此,尝试在php标记之后立即将以下行放在文件的顶部,看看是否有帮助:

$link = mysqli_connect("localhost", "examplebb", "kle]cwdum)#]", "examplebb");
if (mysqli_connect_error()) {

die("Could not connect to database");