$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 и хотел бы узнать, как отлаживать такую ошибку.
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
. Напишите условие, чтобы справиться с этой ситуацией.