Ошибка манипуляции для дублированных записей - MySQL и PHP - PullRequest
2 голосов
/ 07 января 2012

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

Будучи новичком в PHP, я задаюсь вопросом: когда вызывается ошибка повторяющихся записей MySQL, какой будет самый краткий способманипулировать им, чтобы я мог отобразить собственное сообщение или вернуть пользователя в исходную форму?

Я предполагаю, что mysql_errno и header(); - это путь, но я изо всех сил пытаюсь понятькак.

Ответы [ 2 ]

0 голосов
/ 07 января 2012

Вы не хотите, чтобы обычные пользователи видели mysql_error, который отображается, поэтому здесь предпочтительнее настраиваемое сообщение. Когда вы используете mysql_query с оператором вставки или обновления, он вернет true в случае успеха и false в противном случае.

Вы можете сделать что-то вроде этого, чтобы решить:

$query = "query goes here";
if(mysql_query($query)) {
    echo "Success!";
} else {
    echo "Data not submitted. Please try again.";
}

Конечно, вы можете изменить это так, чтобы пользователь перенаправлялся куда-то в случае успеха или неудачи. Если вы хотите использовать функцию header для перенаправления пользователя, убедитесь, что на странице нет вывода перед вызовом функции.

0 голосов
/ 07 января 2012

На самом деле есть 2 вопроса.

  1. Как проверить наличие дублирующейся ошибки.

  2. Как показать что угодно ошибка, не только конкретная для пользователя.

Для начала я бы предпочел использовать SELECT, а не INSERT.Проверьте уникальность с помощью SELECT, а затем выдайте ошибку.

Во-вторых, следуйте шаблону POST / Redirect / GET: никуда не перенаправляйте, а просто добавьте вашу форму и заполните ее введенными значениями.

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

...