CodeIgniter Active Record, базовое обновление дает ошибку

0

Я новичок в 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 создает этот ошибочный запрос?

  • 0
    Что печатает $ id; умереть; сказать тебе?
Теги:
codeigniter

4 ответа

0

Любопытный, посмотрите, работает ли он, когда вы выходите из строки, используйте $this- > db- > escape()

$data = array('adr' => $this->db->escape($address));
$this->db->where('id', $id);
$this->db->update('domains', $data);
0

У меня такая же проблема, и codeigniter не добавляет одно предложение qoutes where where.

Когда вы вводите целочисленное значение, sql не дает ошибки, но когда вы помещаете строковое значение (как переменную) в предложение where, оно дает ошибку. Но когда вы добавляете одинарные кавычки для запроса и запускаете его на phpmyadmin, он работает.

Итак, решение добавляет оператор (string) к вашей переменной: как в этом (string)$id

Я написал ранее, чтобы добавить одинарные кавычки в переменную как '$ id', но это не сработает (я новичок в codeigniter & php, благодаря комментатору Митчеллу МакКенне, я проверил, что я написал раньше)

  • 0
    Вы не хотите этого делать, теперь вы передаете строку '$ address' вместо переменной $ address
0

Как правило, CodeIgniter автоматически будет окружать значение $address одной кавычкой. Я не знаю, почему вы получили это сообщение об ошибке?

  • 0
    Я ожидал того же, думал, что CodeIgniter будет окружать $ address кавычками, это не единственный раз, когда у меня возникала та же проблема при работе над этим проектом. Я написал свой запрос по старинке.
  • 0
    Итак, какую версию CodeIgniter вы используете?
Показать ещё 1 комментарий
0

Попробуйте выполнить одиночные кавычки в переменной $address до вызова метода обновления.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню