问题Fatal error: Call to a member function bind_param() on a non-object in

来源:3-3 MySQLi中使用预处理语句防止SQL注入

eeerrr

2016-07-01 15:28

<?php
header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','','tamia');
if ($mysqli->errno) {
    die("Connect Error:".$mysqli->error);
}
$mysqli->set_charset('UTF8');
$username=$_POST['username'];
$password=md5($_POST['password']);

/*$sql="SELECT * FROM users WHERE username='{$username}' AND password='{$password}'";
$mysqli_result=$mysqli->query($sql);
if($mysqli_result && $mysqli_result->num_rows>0){
    echo '登录成功';
}else{
    echo '登录失败';
}*/

$sql="SELECT * FROM user WHERE username=? AND password=?";
$mysqli_stmt=$mysqli->prepare($sql);
$mysqli_stmt->bind_param('ss',$username,$password);
if ($mysqli_stmt->execute()) {
    $mysqli_stmt->store_result();
    if ($mysqli_stmt->num_rows>0) {
        echo '登录成功';
    }else{
        echo '登录失败';
    }
}
//释放结果集
$mysqli_stmt->free_result;
//关闭预处理语句
$mysqli_stmt->close();
//关闭连接
$mysqli->close();

?>

老师的源代码也是如此,请问是什么问题

http://img.mukewang.com/57761b9c000187b110140137.jpg

写回答 关注

3回答

  • 慕勒3684433
    2019-06-05 21:22:03

    代码里有错误代码引起的

  • 297797171
    2016-11-13 16:45:04

    我也出现这种情况,我是先先用var_dump($mysqli_stmt);

    打印一下$mysqli_stmt的值是否为true,我打印出来的是假,我就发现我打错一个字母,希望你页能找一下,是否有语法错误吧

    哎咿呦鲍鲍

    您好,我想问一下您发现的是哪的问题,我也出现了一样的问题,打印出来的也是false

    2017-02-25 23:15:36

    共 1 条回复 >

  • 自恋的疯子linda
    2016-07-08 18:44:54

    对不起,暂时看不出来

Duang~MySQLi扩展库来袭

本教程从面向对象和面向过程两个方面为你开启MySQLi学习之旅

28645 学习 · 181 问题

查看课程

相似问题