Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как динамически задавать кол-во параметров в bind_result

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Player1
Отправлено: 10 Августа, 2013 - 22:40:24
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




Здравствуйте! У меня в подготовленном выражени одним из динамически определяющихся моментом есть те поля, которые нужно выбирать. Само собой, что их кол-во может быть разным.

PHP:
скопировать код в буфер обмена
  1.  
  2. $query = $mysqli->prepare("SELECT $fields FROM `articles` WHERE `section` = ? ORDER BY ? LIMIT ?");//prepared equation
  3.  


Для того чтобы получить ответ БД, как мне извесно (может я не прав), нужно использовать
PHP:
скопировать код в буфер обмена
  1.  
  2. $query->bind_result($col1, $col2, $col3);
  3.  

Но если делать так, то получается что количество этих $colN должно четко соответствовать количеству полей, которые я выбираю.

Вот собственно вопрос, как решить данную проблему и бинд_резалтом, может есть другие методы?

Лично пробовал подставлять туда массив, а так же что-то типа: $vars = {$col1, $col2, ...}, но это ничего не дало.
 
 Top
Саныч Модератор
Отправлено: 10 Августа, 2013 - 22:51:43
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




PHP:
скопировать код в буфер обмена
  1. $res = $query->get_result();
  2. if ($res) {
  3.     while ($row = $res->fetch_assoc()) {
  4.         // ....
  5.     }
  6. }


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Player1
Отправлено: 10 Августа, 2013 - 22:58:20
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




Спасибо большое.
 
 Top
Саныч Модератор
Отправлено: 10 Августа, 2013 - 23:02:19
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Можно вот такой изврат еще сделать, но я очень не советую.
PHP:
скопировать код в буфер обмена
  1. $colsNum = 2;
  2. $cols = [];
  3. for ($n = 1; $n <= $colsNum; $n++) {
  4.     ${'col' . $n} = NULL;
  5.     $cols[] =& ${'col' . $n};
  6. }
  7. if ($cols) {
  8.     call_user_func_array(array($stmt, 'bind_result'), $cols);
  9.  
  10.     while ($stmt->fetch()) {
  11.        // $col1, $col2
  12.     }
  13. }


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB