Надо вернуться немного назад и уменьшить количество говнокода. global $link - это уже говнокод.
Надо передавать $link через переметры функции. И убедиться, что соединение создано, когда функция вызывается
Вячеслав Коростин, да разумеется.
Подготовленные запросы нужны для любых запросов.
Тут дело не в том, какой запрос, а в том, используются ли в нем переменные.
Если через переменную передаются данные, то их надо передавать через подстановки.
А если через переменну. передается имя колонки или таблицы, то так как у меня в ответе - через ручную фильтрацию
Два вопроса.
1. Какой смысл делать запрос вида SELECT * FROM `table`? Как часто требуется выбирать ВСЕ строки из таблицы?
2. Метод $this->db->row() возвращает одну строку или все?