Я знаю, что это часто задаваемый вопрос, но позвольте мне немного объяснить, почему мне нужно снова спросить об этом.Как проверить, был ли мой запрос на обновление MySQL успешным, если обновление в Code Igniter отсутствует?
Большинство ответов там предлагает использовать
$this->db->affected_rows()
Это не работает в моей ситуации, как у меня может быть ситуация, что обновление данных такое же, как данные в базе данных, поэтому она возвращает 0, даже если обновление - это успех.
Я знаю, что могу написать еще один запрос, чтобы проверить, не так ли, потому что данные одинаковы, но это звучит глупо для меня.
Другой способ заключается в использовании Active Record класса в коде воспламенитель, так что линия будет что-то вроде:
$error_num = $this->db->update("users", array('firstName' => $newFirstName));
return $error_num;
, который является лучшим решением (по крайней мере, это работает, даже если нет никакого обновления из-за повторные данные). Тем не менее, я хотел бы использовать класс базы данных, то есть что-то вроде:
$this->db->query('update table set field = somedata where id=1');
Это повышает читабельность моего кода для Coder, кто знает PHP + SQL, но не знакомы с кодом воспламенитель, но вот почему я спрашиваю, знает ли кто-нибудь, как мне получить номер ошибки, если я запрошу таким образом?
Т.е. что-то вроде mysql_errno() при использовании mysql_query ($ query) в PHP.
Вы можете использовать транзакции, или добавить поле DATETIME к вашему столу как LAST_MODIFIED и обновления всегда с текущей даты-времени, так что вы будете знать, когда он был изменен. – user2844810
Я знаю, что есть много способов сделать это, но просто звучит глупо, чтобы сделать еще один запрос, чтобы проверить успех другого запроса. – cytsunny