если mysql_query () сбои, что сделать?

Иногда так происходит, что mysql_query () не удается ВСТАВИТЬ данные, и я не знаю о нем. Так, вопрос состоит в том, как я знаю, когда это происходит?

9
задан Mark Rushakoff 10 April 2010 в 04:10
поделиться

8 ответов

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

0
ответ дан 4 December 2019 в 13:47
поделиться

Если вы используете разумную клиентскую библиотеку, она выдаст исключение при сбое команды SQL, и вы можете программно изучить код ошибки, чтобы знать, что делать.

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

1
ответ дан 4 December 2019 в 13:47
поделиться

предлагает создать оболочку для mysql_query, которая обнаруживает сбой и регистрирует запрос плюс mysql_error где-нибудь

1
ответ дан 4 December 2019 в 13:47
поделиться

Цитата из страницы документации mysql_query :

Для SELECT , SHOW , DESCRIBE , EXPLAIN и другие операторы, возвращающие набор результатов, mysql_query () возвращает {{1} } ресурс в случае успеха или FALSE в случае ошибки .

Для других типов операторов SQL: INSERT , UPDATE , DELETE , DROP и т. Д., { {1}} mysql_query () возвращает ИСТИНА при успехе или ЛОЖЬ при ошибке.

Итак, чтобы определить, произошла ли ошибка, вы должны проверить возвращаемое значение вашего вызова mysql_query :

$result = mysql_query('...');
if ($result === false) {
    // And error has occured while executing
    // the SQL query
}


Что вы можете сделать?

  • Итак, сначала , вы можете записать ошибку в файл, который вы сможете проанализировать позже
  • И вы можете отобразить красивое сообщение об ошибке: пользователь
    • т.е. какое-то « упс, произошла ошибка страницы ».

Однако помните: пользователю не нужно знать (и он не поймет) сообщение о технической ошибке - поэтому не отображайте его.

9
ответ дан 4 December 2019 в 13:47
поделиться

Вы можете использовать mysql_error php.net/mysql_error , чтобы получить лучшее объяснение, которое вы затем либо отображаете, либо регистрируете в файле.

3
ответ дан 4 December 2019 в 13:47
поделиться

вы должны проанализировать ваш sql. вы вывели параметры? похоже, что проблема может быть в этом. вы можете вставить ваш sql, чтобы мы могли вам помочь.

чтобы показать ошибку, вы можете использовать, например,

$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());

.

0
ответ дан 4 December 2019 в 13:47
поделиться

Возможно, вы можете проверить LAST_INSERT_ID() (mysql_insert_id() в PHP). При условии, что в вашей таблице есть столбец auto_increment.

-2
ответ дан 4 December 2019 в 13:47
поделиться

Одна проверка, которую я обычно выполняю, похожа на пример

$result = mysql_query( $query );
if ( !empty( $error = mysql_error() ) )
{
    echo 'Mysql error '. $error ."<br />\n";
}
else
{
    // the query ran successfully
}

Это хорошая проверка для любых запросов

3
ответ дан 4 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: