Какие ошибки на самом деле происходят с mySQL/PHP

Я работаю над MySQL использования веб-приложения, и я использовал его в прошлом. Я никогда не видел ошибки MySQL другой затем что-то во время процесса разработки - т.е. плохо формировался, выбирает - но однажды его 'работа', какие ошибки там?

Я никогда не видел вставку или выбираю сбой - может они? Если синтаксис правилен, почему был бы они?

Я главным образом спрашиваю это глазом к выяснению, что сделать, если ошибка на самом деле делает occour. Если вставить/обновить сбои, я сплю секунда и попробовал еще раз? Как насчет выбора? Сколько раз перед просто отказом?

Править: Возможно, я спросил это плохо, что я ищу, "Как я должен обработать ошибки MySQL если и когда они occour?". В каждом образце я когда-либо видел, чтобы просто умереть - в общедоступном приложении, которое кажется очень ужасным. Действительно ли стоит повторить команду за несколько секунд и затем дать ошибку пользователю и послать администратору по электронной почте? Или просто признайте, что фатальная ошибка не будет зафиксирована.

6
задан Erik 3 January 2010 в 12:55
поделиться

3 ответа

Может быть что-то столь же простое, как выключение сервера MySQL.
На сервере MySQL могут быть установлены ограничения, например MAX_QUERIES_PER_HOUR .
Могут быть ошибки или тайм-ауты, когда сервер разрывает соединение с клиентом (популярный CR_SERVER_LOST ).
Данные (файл) могут быть повреждены, что вы можете заметить только после выполнения запроса к базе данных / таблице.
Ваша тестовая среда, возможно, никогда не сталкивалась с ситуацией «слишком большой пакет», но тогда это происходит на вашем производственном сервере.
И многое, многое другое ... Прочтите http://dev.mysql.com/doc/refman/5.1/en/problems.html

3
ответ дан 17 December 2019 в 02:29
поделиться

Все это будет зависеть от того, как вы кодируете свой проект. Может ли селекция провалиться или нет, будет зависеть от того, как вы выполняете селекцию в вашем коде. Правильно ли вы дезинфицировали данные? Поскольку это касается MySQL и PHP, это вызывает вопросы о вашем сервере, конфигурациях, окружении и т.д.

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

Возможно, вам стоит вернуться с более конкретными вопросами о том, как избежать sql-инъекций, обеззараживать данные, обрабатывать сложные запросы и т.д. Сообщество здесь будет быстро предложить качественные ответы, я уверен.

0
ответ дан 17 December 2019 в 02:29
поделиться

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

  • Дублировать нарушение ключей из INSERT или UPDATE. То есть PRIMARY KEY или UNIQUE KEY не позволяет установить одно и то же значение столбца в другой строке. Сон вряд ли исправит это, вам необходимо изменить значения, которые вы вставляете/обновляете.

  • Нарушения ограничений , такие как неудовлетворенные ссылки на посторонний ключ или установка столбца NOT NULL в NULL. Необходимо вставить/обновить, используя значения, которые не нарушают ограничения. Удаление строки с зависимостями постороннего ключа приводит к ошибке, если только вы не определили каскадное поведение в объявлении об ограничении FK. Также это ошибка при вставке или обновлении с использованием значения, выходящего за пределы диапазона для типа данных столбца. Привилегии SQL

  • SQL могут ограничивать операции, которые вы можете выполнять.

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

  • Запрос, который работал ранее, может дать ошибку, если кто-то изменит MySQL SQL MODE более строгим образом. Например, некоторые неявные преобразования типов данных или разрешительное применение правила Single-Value в запросах GROUP BY могут привести к ошибке.

3
ответ дан 17 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

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