php - 在“附近触发Mysql错误

标签 php mysql sql

我正在尝试创建一个触发器,但它给了我一个错误,我无法理解它的原因。在我的本地服务器中,它运行良好,而在远程服务器中则不能。
两个MySQL版本相同,MySQL 5.1.48。

触发代码如下:

CREATE TRIGGER actualizar_cliente
BEFORE UPDATE ON cliente FOR EACH ROW BEGIN
IF NEW.password = "" THEN
    SET NEW.password = OLD.password;
ELSEIF NEW.password IS NULL THEN
    SET NEW.password = (MD5(NEW.password));
END IF;
END

这是错误信息:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

最佳答案

DELIMITER $$

CREATE TRIGGER actualizar_cliente
BEFORE UPDATE ON cliente FOR EACH ROW BEGIN
IF NEW.password = "" THEN
    SET NEW.password = OLD.password;
ELSEIF NEW.password IS NULL THEN
    SET NEW.password = (MD5(NEW.password));
END IF;
END

$$
DELIMITER ;

你可能需要IS NOT NULL:

ELSEIF NEW.password IS NOT NULL THEN

关于php - 在“附近触发Mysql错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7834542/

相关文章:

php - 什么是 0, 1, . , * 在此 Yii2 文档图像中

php - 胆怯的 PHP 脚本在遇到错误时就退出

mysql - 删除MySQL中刚好有10行的表

Mysql搜索、快速回复问题

sql - 在 SQL Server 中将 XML 转换为 XML 数据类型

sql - 同一列的条件更新

mysql - 如何添加两个 SUM

php - 删除重复代码

PHP-获取与 api 一起使用的单元格的值

PHP 取消引用