У меня та же проблема, и codeigniter не добавляет одиночные кавычки к предложению where.
Когда вы вводите целочисленное значение, sql не выдает ошибку, но когда вы помещаете строковое значение (как переменную) в предложение where, оно выдает ошибку. Но когда вы добавляете одинарные кавычки к запросу и запускаете его на phpmyadmin, это работает.
Таким образом, решение добавляет оператор (string)
к вашей переменной: как в этом (string)$id
Я писал ранее, чтобы добавить одинарные кавычки в переменную как '$ id', но это не сработает (я новичок в codeigniter & php, благодаря комментатору Митчеллу МакКенне, я проверил то, что написал раньше)