Вызов функции-члена 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 () при ошибке, отличной от объекта» . Я действительно не понимаю, почему я получаю эту ошибку. У меня есть правильное имя cols.

Я новичок в mysqli и хотел бы узнать, как отлаживать такую ​​ошибку.

  1. в чем проблема с моей инструкцией или bind_param ()?
  2. Пожалуйста, научите меня отлаживать такую ​​ошибку

Call to a member function bind_param() on a non-object означает, что $stmt , который вы пытаетесь вызвать bind_param , не является объектом. Почему это не объект? Поскольку $mysqli->prepare не возвращал объект. Почему он не возвратил объект?

mysqli_prepare() возвращает объект оператора или FALSE если произошла ошибка.
http://www.php.net/manual/en/mysqli.prepare.php

Таким образом, это означает, что ошибка должна произойти. Вы должны включить error_reporting , который, вероятно, скажет вам, или изучить $mysqli->error() , что также может вам рассказать.

 $stmt->bind_param("ss", 'N', 'Y');//This line gave the error 

Здесь вам нужно обязательно узнать тип данных в базе данных.

mysqli_prepare() возвращает объект оператора или FALSE если произошла ошибка.

Источник .

$mysqli->prepare() может возвращать FALSE . Напишите условие, чтобы справиться с этой ситуацией.