Я новичок в CodeIgniter, и я получаю сообщение об ошибке, которое я не могу понять.
Это код, который дает ошибку:
$data = array('adr' => $address);
$this->db->where('id', $id);
$this->db->update('domains', $data);
Ошибка:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с:://www.example.com WHERE id
= '10' 'в строке 1
Это запрос:
UPDATE `domains` SET `adr` = http://www.example.com WHERE `id` = '10'
Если я изменил это на
UPDATE `domains` SET `adr` = 'http://www.example.com' WHERE `id` = '10'
он работает. Почему CodeIgniter создает этот ошибочный запрос?
Любопытный, посмотрите, работает ли он, когда вы выходите из строки, используйте $this- > db- > escape()
$data = array('adr' => $this->db->escape($address));
$this->db->where('id', $id);
$this->db->update('domains', $data);
У меня такая же проблема, и codeigniter не добавляет одно предложение qoutes where where.
Когда вы вводите целочисленное значение, sql не дает ошибки, но когда вы помещаете строковое значение (как переменную) в предложение where, оно дает ошибку. Но когда вы добавляете одинарные кавычки для запроса и запускаете его на phpmyadmin, он работает.
Итак, решение добавляет оператор (string)
к вашей переменной: как в этом (string)$id
Я написал ранее, чтобы добавить одинарные кавычки в переменную как '$ id', но это не сработает (я новичок в codeigniter & php, благодаря комментатору Митчеллу МакКенне, я проверил, что я написал раньше)
Как правило, CodeIgniter автоматически будет окружать значение $address одной кавычкой. Я не знаю, почему вы получили это сообщение об ошибке?
Попробуйте выполнить одиночные кавычки в переменной $address
до вызова метода обновления.