Заранее прошу прощения, что отнимаю время - я только начинаю разбираться с парсером
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)
А у меня он как будет выглядеть?