调用非对象上的成员函数bind_param()(尽管进行了研究但仍无法解决) [英] Call to a member function bind_param() on a non-object (unable to solve despite research)

查看:68
本文介绍了调用非对象上的成员函数bind_param()(尽管进行了研究但仍无法解决)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

$stmt = $mysqli->prepare('select Un from member where Lock = ? and Activated = ?');
$stmt -> bind_param("ss", 'N', 'Y');//This line gave the error
$stmt -> execute();
$stmt->store_result();//apply to prepare statement
$numRows = $stmt->num_rows;

if ($numRows > 0)//if have result
 while ($row = $stmt->fetch())

我上面的代码给了我一个在非对象上调用成员函数bind_param()的消息" . 我真的不明白为什么我得到这个错误.我有正确的列名.

my above code gave me a "Call to a member function bind_param() on a non-object" error. I really don't get it why i getting this error. I have correct cols name.

我是mysqli的新手,想学习如何调试此类错误.

I am new to mysqli and would like to learn how to debug such error.

  1. 我的prepare语句或bind_param()有什么问题?
  2. 请教我如何调试此类错误

推荐答案

Call to a member function bind_param() on a non-object表示您要在其上调用bind_param $stmt不是对象.为什么它不是对象?因为$mysqli->prepare没有返回对象.为什么它不返回对象?

Call to a member function bind_param() on a non-object means that $stmt, which you're trying to call bind_param on, is not an object. Why is it not an object? Because $mysqli->prepare did not return an object. Why did it not return an object?

mysqli_prepare()返回语句对象;如果发生错误,则返回FALSE.
http://www.php.net/manual/en/mysqli.prepare.php

mysqli_prepare() returns a statement object or FALSE if an error occurred.
http://www.php.net/manual/en/mysqli.prepare.php

因此,这意味着必须发生错误.您应该打开 error_reporting ,这可能会告诉您,或者检查

So that means an error must have occurred. You should turn on error_reporting, which will probably tell you, or examine $mysqli->error(), which may tell you as well.

这篇关于调用非对象上的成员函数bind_param()(尽管进行了研究但仍无法解决)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆