$result = $stmt->get_result();
Попросту пишет:
Fatal error: Call to undefined method mysqli_stmt::get_result() in ...
При таком раскладе:
Код:
$stmt = $db->prepare($query);
if (!is_array($data))
call_user_func_array(array($stmt, 'bind_param'), refValues($data));
$stmt->execute();
$result = $stmt->get_result();
...
if (!is_array($data))
call_user_func_array(array($stmt, 'bind_param'), refValues($data));
$stmt->execute();
$result = $stmt->get_result();
...
Если использую bind_result, работает. Но мне хочется выводить в виде массива строк базы. Что это может быть?
Где взял:
http://php.net/manual/en/mysqli-stmt.get-result.php
Как мне, может быть, другим путём получить массив нескольких строк базы?
Я не понимаю, зачем было создавать эти подготовленные выражения, если из них нет возможности нормально и данные выбрать.
Да, нашёл уже костыль - функцию в несколько строк, чтобы получить массив строк.
Но с прежними num_rows, fetch_assoc это было намного легче.
Код:
$sth = $this->db->prepare('SELECT id, rusname, deporder FROM departments WHERE rusname=?');
$sth->execute(array($depname));
$row = $sth->fetch(PDO::FETCH_ASSOC);
$sth->execute(array($depname));
$row = $sth->fetch(PDO::FETCH_ASSOC);
Против костылей всё нутро протестует, хоть и работает. Нужно, чтобы было красиво.
Всё-таки смущает меня в подготовленных запросах отправка вместо одного запроса нескольких. Неэкономно...
Например?
Как раз-таки подготовленные запросы экономнее.
Цитата: UAS
>> Всё-таки смущает меня в подготовленных запросах отправка вместо одного запроса нескольких.
Например?
Как раз-таки подготовленные запросы экономнее.
Например?
Как раз-таки подготовленные запросы экономнее.
сначала prepare, потом execute
2 запроса вместо одного query
не эти), так что запрос к базе будет один.. это и по включённому режиму отладки видно..
нет, по крайней мере для тех баз, у кого нет нативных плейсхолдеров, вставка происходит средствами PDO.. для мускула плейсхолдеры ненативные (то есть
Во-первых сказано выше, а во-вторых, использование подготовленных запросов более эффективно и безопасно: СУБД не тратит время на парсинг значений параметров и инъекции исключены.
Нашёл как лечить Fatal error: Call to undefined method mysqli_stmt::get_result().