parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Заранее прошу прощения, что отнимаю время - я только начинаю разбираться с парсером

alauda 01.10.2003 17:42

Вот код на настоящий момент:

# проверка, все ли поля заполнены
^if(def $form:user_name && def $form:user_nic && def $form:user_login && def $form:user_pass && def $form:user_mail && def $form:user_info){

# запись инфы в базу данных
^connect[$SQL.connect_string]{
^void:sql{insert into users
(user_name, user_nic, user_login, user_pass, user_mail, user_info)
values
('$form:user_name', '$form:user_nic', '$form:user_login', '$form:user_pass', '$form:user_mail', '$form:user_info')
}
Пользователь добавлен. Информация о пользователе будет в базе данных после проверки администратором сайта.
}
}{
Пожалуйста, заполните все поля
}

Если в результате попытки записать в базу обнаруживается, что такое имя или логин или мыло уже есть, то он выдает 500 ошибку и в лог парсера добавляется ошибка в которой помимо путей и указания, что куда вносилось, содержится Duplicate entry 'User' for key 4 [sql.execute]. Как мне отлавливать эту ошибку? Насколько я понял, определение, в каком поле дубликат - это как раз key 4. Но что дальше? В примере приводится такой кусок кода:

^try{
$srcDoc[^xdoc::create{$untrustedXML}]
}{
^if($exception.type eq xml)

А у меня он как будет выглядеть?