/ / MySQLi Catchable Fatal Error - php, mysqli, подготвена декларация

MySQLi Catchable Fatal Error - PHP, MySQL, подготвено изявление

Използвам подготвени отчети и MySQLi и в момента получавам тази грешка.

PHP Catchable fatal error:  Object of class mysqli_stmt could not be converted to string in /Users/me/path/to/project/ModelBase/City.php on line 31

Кодът, който идва от (пълна функция):

    function select($query, $limit)
{
$query = "%".$query."%";
$con = ModelBase::getConnection();
$sql = "SELECT name FROM cities WHERE name LIKE ? LIMIT ?";
$query = $con->prepare($sql) or die("Error preparing sql in City ".parent::$db_conn->error);
$query->bind_param("si", $query, $limit) or die("Error binding params in City ".parent::$db_conn->error);
$query->execute() or die("Error executing query in City");

$tmp = "";
$res = $query->bind_result($tmp);
while($query->fetch());
{
$citylist[] = $tmp;
}
$query->close();
}

Подобно на 31 е $ query-> execute (). Не мога да намеря никаква информация за това, а това е почти идентичен синтаксис с други системи, които съм изградил и никога не съм имал този проблем.

Отговори:

1 за отговор № 1

Мисля, че проблемът е, че използвате $query в два контекста. Веднъж като SQL низ и веднъж, за да подготвите изявлението си:

$query = "%".$query."%";
...
$query = $con->prepare($sql)

така че когато стартирате този ред:

 $query->bind_param("si", $query <--- bind to itself?

изпълнението на действителната заявка ще се срине.