Intereting Posts
Темы и шаблоны Magento как получить весь массив объектов с одним значением? Некорректное числовое число, которое встречается – Невозможно воспроизвести Laravel 5.2: интегрируйте пакет доверенности, создайте роль и разрешения и получите доступ к нему. Выполнение простой арифметики в инструкции MySQL или в PHP-коде Параметры выбора формы symfony2 Как проверить, существует ли значение в массиве в валидации laravel? как я могу исправить продолжительность времени, чтобы заполнить форму Можно ли проверить, существует ли установленный ключ Redis, и если он не существует, установите его, если он существует, а затем выйдите, все как транзакция Мне нужна конечная точка с запятой? Как сделать обратную ссылку на страницу разбиения на страницы вернуться к предыдущей странице разбиения на страницы Можете ли вы получить доступ к модели из другой модели в CodeIgniter? Как я должен служить изображению с Laravel? Yii Модель с составным первичным ключом Repost: создание RSS-канала с помощью PHP

Как получить массив объектов строки из моего результата в подготовленном запросе mysqli

Я хотел бы вернуть все результаты из моего подготовленного запроса (mysqli) в виде объектов в массиве, но я не могу найти метод fetchall или что-то подобное. Как мне это сделать?

public function getImageResults ($search_term) { if (empty($search_term)) return false; $image_query = $this->db_connection->stmt_init(); $image_query_sql = " SELECT Images.url as url FROM Images, ImageSearch, ImageSearchResults WHERE ImageSearch.search_string = ? AND ImageSearchResults.search_id = ImageSearch.id AND ImageSearchResults.image_id = Images.id AND Images.deleted = 0 AND ImageSearch.deleted = 0 AND ImageSearchResults.deleted = 0 "; if ($image_query->prepare($image_query_sql)) { $image_query->bind_param('s', $search_term); $image_query->execute(); $image_query->store_result(); $image_query->bind_result($url); return //need to return the entire result set here... any ideas? } return false; } 

Я нашел этот код в сети, который работает, но я получаю эту ошибку, когда я ее использую

Примечание: использование неопределенной константы mysqli_stmt_bind_result – предполагается 'mysqli_stmt_bind_result'

 private function getresult ($stmt) { $result = array(); $metadata = $stmt->result_metadata(); $fields = $metadata->fetch_fields(); for (;;) { $pointers = array(); $row = new stdClass(); $pointers[] = $stmt; foreach ($fields as $field) { $fieldname = $field->name; $pointers[] = &$row->$fieldname; } call_user_func_array(mysqli_stmt_bind_result, $pointers); if (!$stmt->fetch()) break; $result[] = $row; } $metadata->free(); return $result; } 

mysqli_stmt_bind_result в этой строке:

 call_user_func_array(mysqli_stmt_bind_result, $pointers); 

должны быть указаны:

 call_user_func_array('mysqli_stmt_bind_result', $pointers); 

Вы также можете использовать PDO , непроверенный пример, но он должен работать:

 public function getImageResults ($search_term) { $sql = " SELECT Images.url as url FROM Images, ImageSearch, ImageSearchResults WHERE ImageSearch.search_string = ? AND ImageSearchResults.search_id = ImageSearch.id AND ImageSearchResults.image_id = Images.id AND Images.deleted = 0 AND ImageSearch.deleted = 0 AND ImageSearchResults.deleted = 0 "; $pdo = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'username', 'password'); $sth = $pdo->prepare($sql); $sth->execute(array($search_term)); $result = $sth->fetchAll(PDO::FETCH_CLASS, "ArrayObject"); //var_dump($result);//debug return $result; } 

Хм, вы могли бы попробовать что-то вроде этого, если я правильно помню:

 call_user_func_array(array($stmt, 'bind_result'), $pointers);