Обновление MySQL Statement от CodeIgniter - PullRequest
0 голосов
/ 21 октября 2010

У меня возникла проблема с этим запросом по какой-то причине:

$this->db->query("UPDATE schools SET name = '$name', pop = '$pop', details = '$details', numteachers = '$numteachers', recess = '$recess', equipment = '$equipment' WHERE id = '$schoolid'");
echo $this->db->affected_rows(); 

По какой-то причине disabled_rows выводит 0, но в запросе ошибок нет. Когда я смотрю в базе данных, идентификатор строки не был затронут. Я экранирую все входные данные перед запросом, подобным этому:

$name = mysql_real_escape_string($_POST["schoolname"]);

Со всеми входными данными пример запроса с реальными входными данными выглядит перед выполнением:

UPDATE schools SET name = 'Jefferson County Public School', pop = '2,345', details = 'Lorem Ipsum is simply dummy text of the and typesetting industry.', numteachers = '2 Te', recess = '40 mins', equipment = 'Gym, Climbing Frame, Goal Posts, Track' WHERE id = '1'

Все столбцы уже заполнены под строкой с идентификатором 1, это просто новые данные. id - это int, первичный ключ и auto_incrementing.

Любой совет поможет, спасибо!

Ответы [ 2 ]

2 голосов
/ 21 октября 2010

Вы уверены, что результирующий запрос на самом деле генерируется, или вы просто вставили некоторые данные?Убедитесь, что ваш идентификатор действительно является идентификатором строки, которую вы хотите обновить ... он может быть нулевым или неожиданным.

;)

0 голосов
/ 22 октября 2010

Не возвращайте затронутые строки, чтобы увидеть, был ли в запросе ошибка или нет.Если вы обновляете несуществующую строку, вы получите 0. Если вы обновите существующую строку, но фактически не измените данные, вы все равно получите 0.

Return $ this-> db-> update ('table'), чтобы получить правильный ответ bool (или $ this-> db-> query (), если вы хотите продолжать писать SQL с длинными буквами).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...