Я знаю, что mysql 5.5 позволяет использовать SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Error: ...';
для повышения пользовательской ошибки. И эта ошибка остановит операцию INSERT
если она была помещена в BEFORE INSERT TRIGGER
на некоторые таблицы. И PDO
также удобно поймать PDOException
и вывести errorinfo (), то есть MESSAGE_TEXT
определенный в SIGNAL SQLSTATE
.
Тем не менее, версия mysql на сервере, который я арендую, – это mysql 5.1. И я хочу знать, как я могу повысить пользовательскую ошибку с такими функциями, как SIGNAL SQLSTATEMENT
в mysql 5.5.
insert
когда она находится before insert
запуска триггера PDO
Я нашел некоторые темы по подобным проблемам, и я пробовал:
вызвать неэкскую процедуру
вызовите `sp_raise_error`;
использовать функцию для выброса ошибки
https://blogs.oracle.com/svetasmirnova/entry/how_to_raise_error_in
PDO
не может быть пойман. Так что же такое решение? (Я тестировал на MySQL5.5)