MySQLi Catchable Fatal Error - PullRequest
       5

MySQLi Catchable Fatal Error

0 голосов
/ 03 марта 2010

Я использую подготовленные операторы и 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 голос
/ 03 марта 2010

Мне кажется, проблема в том, что вы используете $query в двух контекстах. Один раз в виде строки SQL и один раз для подготовки вашего оператора:

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

поэтому, когда вы запустите эту строку:

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

выполнение реального запроса завершится сбоем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...