$params['title']
- строка, а $params['feed']
- целое число.Тип заголовка столбца - varchar
, а тип фида столбца - integer
.Код PHP:
$this->db->where('title', $params['title']);
$this->db->where('feed', $params['feed']);
$query = $this->db->get('news');
Так что все должно быть хорошо, НО ...
A Database Error Occurred
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'riots: intense anger after deaths of three young men AND `feed` = '1'' at line 3
SELECT * FROM (`news`) WHERE `title` = Birmingham riots: intense anger after deaths of three young men AND `feed` = '1'
Filename: C:\path\system\database\DB_driver.php
Line Number: 330
Конечно, очевидно, почему произошла ошибка.Есть ли способ исправить это (кроме не использовать активный класс записи)?Посмотрел документацию CI, но понятия не имел, почему возникла эта проблема.
РЕДАКТИРОВАТЬ
Решено путем изменения на
$this->db->where('title', (string) $params['title']);
И другой пункт соответственно,А теперь есть куча одинаковых ошибок в других моделях.Ну, я думаю, что единственное решение - это везде добавлять вручную тип var.