mysql_query & запрос на обновление не выполняется - PullRequest
1 голос
/ 16 сентября 2011

Я пытаюсь запустить обновление для определенной строки таблицы и увеличивать на единицу содержимое столбца при каждом запуске обновления.Однако в определенные моменты запрос не выполняется и также не выдает исключение.Кто-нибудь знает, почему это может происходить?Я пробовал следующее:

$intVersion = $this->intVersion + 1;
$strSql=<<<EOT
UPDATE $this->strQueryTable SET version = '$intVersion' WHERE id = $this->id;
EOT;
$blnQueryOk = mysql_query ( $strSql );

$intVersion = $this->intVersion + 1;
$strSql =<<<EOT
UPDATE $this->strQueryTable SET version = $intVersion WHERE id = $this->id;
EOT;
$blnQueryOk = mysql_query ( $strSql );

$strSql =<<<EOT
UPDATE $this->strQueryTable SET version = version + 1 WHERE id = $this->id;
EOT;
$blnQueryOk = mysql_query ( $strSql );

и во всех случаях:

if (!$blnQueryOk) {
   throw new Exception(mysql_error ());
   return false;
}

Все они не могут обновляться несколько раз без выдачи исключения.

1 Ответ

0 голосов
/ 20 сентября 2011
  1. Может случиться так, что на самом деле происходит сбой соединения с базой данных (из-за некоторой проблемы, связанной с базой данных, такой как проблема сети или слишком много соединений mysql и т. Д.).Вы можете попробовать сделать это:
    • После вашего вызова mysql_connect() убедитесь, что ресурс соединения БД действительно создан, и в случае ложного возвращаемого значения начните генерировать исключение.
  2. Очень распространенная причина, по которой mysql_error() не производит ничего, заключается в том, что в одном процессе открыто несколько соединений с базой данных.Чтобы избежать этого:
    • Во всех ваших вызовах mysql_query() и mysql_error() также начните передавать ресурс соединения db в качестве параметра.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...