Использование MySQL в одиночку - Если я базовое обновление таблицы вроде этого:Codeigniter db-> обновление() VS MySQL родной UPDATE изменяемых строк: 0
UPDATE `SOMETABLE` SET `NAME` = 'John' WHERE `ID` = 1;
и значение NAME
= "Джона 'еще был' John '- другими словами - ничего нового, ничего не обновляйте. MySQL возвращает "Затронутые ряды: 0 (запрос занял 0.0007 сек)"
Если я один и тот же вызов - теперь с помощью CodeIgniter - и затем извлечь пораженные строки так:
$data = array(
'NAME' => 'John'
);
$this->db->where('ID', 1);
$this->db->update('SOMETABLE', $data);
$affect = $this->db->affected_rows();
echo $affect; // $affect echos 1
$ влияет на заканчивается равным 1. У меня нет проблем с этим - я просто ожидал, что если нечего обновлять - этот кодигнитор будет вести себя так же, как MySQL, и не редактировать что-то, что не нужно обновлено и возвращает 0 для affected_rows().
- Есть ли у меня такое неправильное?
- Является ли переписывание кодеригентов 'John'? или нет?
Просто любопытство здесь:.? Почему вы передавая идентификатор в виде строки? –
Основываясь на ваших выводах, я задаюсь вопросом, что такое нагрузка (я понимаю nil на таком базовом запросе). Очевидно, что MySQL бьет по db и в основном делает выбор, чтобы узнать, требуется ли обновление, а затем обновление, если необходимо. просто делает обновление. Я предполагаю, что выбор выполняется быстрее/менее ресурсоемким, чем обновление. Хороший вопрос. 1-up – dmayo
My Bad - Это предложение от @Dwight с $ this-> db-> last_query(); (DATE_RFC822) добавлено – KDawg