Привет, я пытаюсь преобразовать сайт, чтобы использовать подготовленные операторы mysql, однако у меня возникли проблемы с заменой моего использования fetch_array().Возвращает массив из mysqli stmt query
Комментарии на php.net предлагают решение, которое, как я думал, должно работать, но по какой-то причине я получаю странные неопределенные постоянные ошибки при вызове функции через call_user_func_array(), может кто-нибудь предложить лучший способ сделать это?
Вот функция, которую я использую в данный момент. Я немного пошатнулся для публикации здесь (это часть более крупного класса, который расширяет mysqli и обрабатывает ошибки и т. Д.), Поэтому извините, если я сделал какие-либо ошибки, скопировал и вставил их.
public static function stmt_bind_assoc(&$stmt, &$out) { $data = mysqli_stmt_result_metadata($stmt); $fields = array(); $out = array(); $fields[0] = $stmt; $count = 1; while($field = mysqli_fetch_field($data)) { $fields[$count] = &$out[$field->name]; $count++; } call_user_func_array(mysqli_stmt_bind_result, $fields); }
public function fetch_array($rawQuery) { $stmt = $this->prepare($rawQuery); $row = array(); self::stmt_bind_assoc($stmt, $row); $result = $stmt->fetch(); $stmt->free(); return $result; }
Ошибки я получаю:
"Примечание: Использование неопределенной константы mysqli_stmt_bind_result - предполагается" mysqli_stmt_bind_result"
«Фатальная ошибка: Вызов неопределенной метод mysqli_stmt :: бесплатно() "
Может ли кто-нибудь помочь, объяснив, почему я получаю эти ошибки и как я могу это исправить?
EDIT: вот оригинальный комментарий от php.net http://www.php.net/manual/en/mysqli-stmt.fetch.php#82742