当前位置: 首页 > 知识库问答 >
问题:

mysqli_real_escape_string()要求参数1为mysqli;mysql_result()要求参数1为资源

郜昊苍
2023-03-14

我收到这些错误:

注意:未定义的变量:第11行的login.php链接

警告:mysqli_real_escape_string()要求参数1为mysqli,登录时为null。php第11行

注意:未定义变量:第18行login.php中的链接

警告:mysqli_query()期望参数1是mysqli,在login.php的第18行给出了null

警告:mysql_result() 期望参数 1 是资源,在登录时给出空.php在第 19 行

代码如下:

<?php

session_start();


$link = mysqli_connect('localhost','root','') or die(); 
mysqli_select_db($link,'lr') or die();  


function sanitize($data) {
    return mysqli_real_escape_string($link, $data);     <<line 11
}



function user_exists($username) {
    $username = sanitize($username);    
    $query = mysqli_query($link, "SELECT COUNT('user_id') FROM 'users' WHERE 'username' = '$username'");        <<line 18
    return (mysql_result($query, 0) ==1) ? true : false;        <<line19

}


if (empty($_POST) === false) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    if (empty($username) === true || empty($password) === true) {
        $errors[] = 'You need to enter a username and password';    

    } else if (user_exists($username) === false) {  
        $errors[] = 'User not found';
        }


}

?>

有什么问题?

共有2个答案

韦宏扬
2023-03-14

Global可能解决了这个问题,但是最好将变量传递给函数。

function sanitize($data, $A) {
    return mysqli_real_escape_string($A, $data);     <<line 11
}
function user_exists($username, $A) {
    $username = sanitize($username);    
    $query = mysqli_query($A, "SELECT COUNT('user_id') FROM 'users' WHERE 'usernam' = '$username'");        <<line 18
    return (mysql_result($query, 0) ==1) ? true : false;        <<line19

}

if (empty($_POST) === false) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    if (empty($username, $link) === true || empty($password) === true) {
        $errors[] = 'You need to enter a username and password';    

    } else if (user_exists($username, $link) === false) {  
        $errors[] = 'User not found';
        }


}
勾向文
2023-03-14

您需要在函数内部使用$_GLOBALS['link']。

这样地:

    function sanitize($data) {
    return mysqli_real_escape_string($_GLOBALS['$link'], $data);     <<line 11
}

user_exist函数内部也是如此。

 类似资料:
  • 我想连接到一个名为ranch的数据库(使用xampp),并在数据库中插入一些表单数据。浏览器将显示错误: 警告:mysqli_error()期望参数1为mysqli,字符串在第38行的C:\xampp\htdocs\project ect1\register.php中给出 错误:无法执行插入到child_parent('子名','子姓','年龄','性别','姓名','姓氏','地址','tk',

  • 嘿,你们能帮我解决这个问题吗,因为我搞不清楚,这里是错误。 节目: 希望你们能尽快找到答案!另外,我重复这个问题,因为我迫不及待地想再问一个问题,但谢谢你帮我解决这个问题!

  • 我的代码: Secund代码: 返回错误: [08-Aug-2014 06:29:55 UTC]PHP警告:sort()希望参数1是数组,布尔值在第44行的/home/cassiano/public_html/admin/inc/classe.ftp.PHP中给出[08-Aug-2014 06:29:55 UTC]PHP警告:为第46行的/home/cassiano/public_html/adm

  • 在这种情况下,我的查询工作正常,我已经在mysql上对它们进行了测试。 首先,我有一个自定义查询函数,在MySQLDatabase类中如下所示 然后我有一个类叫用户使用MYSQL类 最后,我以这种方式调用index.php中的方法 以下是一些事实:1。-当我插入数据库中存在的id值时,会出现此警告 警告:mysqli_fetch_array()要求参数1为给定数组的mysqli_结果 2.-当我插

  • 我想通过Laravel的Sendgrid发邮件。我一直在关注SendGrid关于用Laravel发送电子邮件的知识库文章 我在 文件中设置了所有内容(尽管我还必须更新

  • 我已经使用(MySQLi过程)将我的php分成了2/3部分:第一部分专门用于db(open、execute、Total Row、infected Row、Close…),第二部分专门用于其他功能。以下是一个例子: db.php(第一个) 和functions.php(第二个) 当我尝试执行脚本时,我得到了以下警告错误: 如果您查看此函数以获取行数,则该参数将在函数内部进行测试,sql语句已在mys