- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Имеется строка вида:
$columns = $db->GetCol('table_name');Ну и сама функция:
function GetCol($table) {
$columns = array();
$result = $this->Query('DESCRIBE #', array($table));
$field = mysqli_fetch_field_direct($result, 0);
while( $column = $this->NextRow($result) ){
$columns[] = $column[$field];
}
...
return $columns;
}
При обращении к этой ф-ии получаю ошибку Illegal offset type.
Можете помочь разобраться что не так?
Функция получает не тот тип данных, которые ожидает получить. Подозреваю, что из-за того, что $column[$field] - это элемент массива, а $field - это объект. Такого быть не должно.
Методом "произвольных" попыток посмотреть что получаем после каждой операции обнаружил, что если после
$result = $this->Query('DESCRIBE #', array($table));добавить
while($result->fetch_assoc()) {}проблема решается, но почему - так и не понял...
Методом "произвольных" попыток
Надо не произвольные попытки делать, а осмысленно программировать. Иначе
так и не понял...
За что отвечает данная ф-я я то понимаю, но в данном случае нет никаких манипуляций с извлеченным массивом. И пытаюсь понять как же это повлияло...
P.S. Переписываю класс, написанный под php 5.4
Вам сразу написали, что mysqli_fetch_field_direct возвращает объект. Нефиг пытаться этим значением индексировать элемент массива.
Указатель итератора загнали за последний элемент. Следующий цикл while уже выполняться не будет. Ф-ция вернет пустой массив. Если конечно NextRow и ... кардинально не поменяют ситуацию.