8

我在特定条件下触发,如果条件:false发生错误。我应该将数据库触发器中发生的错误消息显示到HTML网页以通知用户!

CREATE TRIGGER check_trigger BEFORE INSERT ON your_table
FOR EACH ROW
BEGIN        
    IF (NEW.name = NEW.firstname) THEN
        SIGNAL SQLSTATE '45000' 
            SET MESSAGE_TEXT = 'same names error. Insertion canceled';
    END IF;
END

如何显示SET MESSAGE_TEXT=""到网页?如果不可能有其他方法

4

2 回答 2

5

您可以在此处查看文档

它说:

SIGNAL 执行后可访问的错误值是由 SIGNAL 语句和 MESSAGE_TEXT 和 MYSQL_ERRNO 项引发的 SQLSTATE 值。这些值可从 C API 获得:

mysql_sqlstate()返回SQLSTATE值。

mysql_errno()返回MYSQL_ERRNO值。

mysql_error()返回MESSAGE_TEXT值。

因为我猜你正在使用 PHP 你可以试试

if (!$mysqli->query("INSERT INTO your_table SET name='a', firstname='a'")) {
    printf("Error message: %s\n", $mysqli->error);
}
于 2019-07-02T12:48:23.050 回答
0

你可以看看像 Pusher 这样的外部休息服务,它可以将消息推送到你的网站。

于 2019-07-03T04:35:14.073 回答