SQL UPDATE не работает? - PullRequest
       4

SQL UPDATE не работает?

0 голосов
/ 30 сентября 2010

В моем приложении LAMP (с использованием CodeIgniter) у меня есть вызов $ this-> db-> update ..., который генерирует SQL наподобие следующего:

UPDATE `MyTable` SET `MyProcess` = 5 WHERE `Id` = 1

Проблема в том, что этоКажется, работает с перерывами - и я в настоящее время не знаю, что может быть не так.Что-нибудь о MySQL мне нужно знать при попытке обновления?Я добавляю и обновляю записи много (но, вероятно, не более одного запроса каждые 5 секунд).Когда я запускаю запрос в phpMyAdmin, он работает нормально.

Ответы [ 2 ]

3 голосов
/ 30 сентября 2010

Это дополнение к ответу Марка. mysql_affected_rows также возвращает 0, если вы пытаетесь обновить запись, но значения в этой записи не меняются.

Например; текущие значения в MyTable:

+----+-----------+
| ID | MyProcess |
+----+-----------+
| 1  | 5         |
+----+-----------+

Тогда, когда вы запустите ваш запрос:

UPDATE `MyTable` SET `MyProcess` = 5 WHERE `Id` = 1

mysql_affected_rows вернет 0

Может ли это быть тем, что происходит в вашем случае?

1 голос
/ 30 сентября 2010

Одна вещь, которая может поймать людей, это то, что если ваш id по какой-то причине не существует в таблице, вы не получите никакой ошибки из оператора UPDATE - он просто молча ничего не сделает.

Вы можете использовать, например, mysql_affected_rows (или эквивалент для вашего API базы данных), чтобы увидеть, что строка была фактически обновлена, и если не отображать или регистрировать сообщение об ошибке. Это должно помочь вам решить проблему.

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