mysqli_real_escape_string()错误

时间:2017-07-20 18:05:15

标签: php mysql

我不断收到错误消息,例如:

  

警告:mysqli_real_escape_string()只需要2个参数,1   在第3行的C:\ xampp \ htdocs \ lr \ core \ functions \ general.php中给出

     

致命错误:未捕获错误:调用未定义的函数   mysqli_result()在C:\ xampp \ htdocs \ lr \ core \ functions \ users.php:4 Stack   trace:#0 C:\ xampp \ htdocs \ lr \ login.php(13):user_exists(NULL)#1   {main}抛出C:\ xampp \ htdocs \ lr \ core \ functions \ users.php在线   4"

这是我的users.php代码:

function user_exists($User) {
    $User = sanitize($User);
    return (mysqli_result(mysqli_query("SELECT COUNT('Id') FROM 
                                       'members' WHERE 'User' = '$User'"), 0) == 1) ? true : false;
}
function user_active($User) {
    $User = sanitize($User);
    return (mysqli_result(mysqli_query("SELECT COUNT('Id') FROM 
                                      'members' WHERE 'User' = '$User' AND 'active' = 1"), 0) == 1) ? true : false;
}
function Id_from_User($User) {
    $User = sanitize($User);
    return mysqli_result(mysqli_query("SELECT 'Id' FROM 'members' 
                                    WHERE 'User' ='$User'"), 0, 'Id');
}
function login($User, $Password) {
    $Id   = Id_from_User($User);
    $User = sanitize($User);
    return (mysqli_result(mysqli_query("SELECT COUNT('Id') FROM 
                                      'members' WHERE 'User' = '$User' AND 'Password' = 'Password'"), 0) == 1) ? $Id : false;
}

我的init.php代码

session_start();
require('database/connect.php');
require('functions/users.php');
require('functions/general.php');
$errors = array();

我的login.php代码

include('core/init.php');
if (empty($_POST) === false) {
    $User     = $_POST['User'];
    $Password = $_POST['Password'];
    if (empty($User) === true || empty($Password) === true) {
        $errors[] = 'You need to enter a Username and Password';
    } else if (user_exists($User) === false) {
        $errors[] = 'We can\'t find that Username. Have you 
                                            registered?';
    } else {
        $login = login($User, $Password);
        if ($login === false) {
            $errors[] = 'That Username/Password combination is 
                                             incorrect';
        } else {
            echo 'ok!';
            $_SESSION['Id'] = $login;
            header('Location: index.php');
            exit();
        }
    }
    print_r($errors);
}

我的general.php代码

function sanitize($data) {
    return mysqli_real_escape_string($data);
}

我的connect.php代码

$conn = mysqli_connect("localhost", "root", "", "underthehat");
if (!$conn) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}
echo "Success: A proper connection to MySQL was made! The my_db 
                                          database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($conn) . PHP_EOL;
mysqli_close($conn);

最后我的index.php代码

include('core/init.php');
include('includes/head.php');

if (isset($_SESSION['Id'])) {
    echo 'Logged in';
} else {
    echo 'Not logged in';
}

echo "<html><body>";
include('includes/header.php');
include('includes/aside.php');
include('includes/footer.php');
echo "</body></html>";

我一直试图用我创建的数据库找出我的登录信息,但我得到的错误。

2 个答案:

答案 0 :(得分:1)

您的mysqli_real_escape_string()也需要连接变量;

所以你需要传递

 $conn = mysqli_connect("localhost", "root", "", "underthehat");
在您mysqli_real_escape_string()上方

然后将其包含在该标记中;

return mysqli_real_escape_string($conn, $data);

答案 1 :(得分:0)

我虽然不在我手中。好的,谢谢你们,我会重新开始,我没有帮助我使用Lil较旧的教程,所以一些语法已经改变,我不知道我们会抓住它。我只想感谢大家的诚实反馈。