Вопрос

Функция MySQLi в PHP великолепна.

Подготовленные операторы отлично подходят для внедрения параметров в запрос.

Однако, если вы используете Statements, похоже, у вас больше нет доступа к функции fetch_assoc.Вам придется вручную связать все ваши результаты.Это означает, что мой SQL-запрос должен перечислить все поля, а затем мне нужно заранее перечислить все переменные при получении результатов (используяbind_result).Это может сильно раздражать и отнимать время.

Есть ли альтернатива?

Спасибо

Это было полезно?

Решение

MySQLi предоставляет методы для решения этой проблемы, взгляните на функцию result_metadata.

Я написал класс, позволяющий без проблем выполнять параметризованные запросы MySQLi. Загрузку и базовую информацию об использовании можно найти здесь: http://www.robpoyntz.com/blog/?p=191

Другие советы

Да, это называется ПДО и обычно предпочтительнее MySQLi.Он предлагает операторы с обычными параметрами выборки и не требует явного связывания всех параметров.Типичный запрос может выглядеть так:

$stmt = $db->prepare("SELECT * FROM foo WHERE a = ?");
$stmt->execute(array($a));

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

PDO очень гибок, поэтому его можно использовать и другими способами.В инструкции много хороших примеров.Взглянем!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top