Php 创建MySQL触发器时出错

Php 创建MySQL触发器时出错,php,mysql,Php,Mysql,我试图制造这个触发器,但我得到了 [Err]1064-您的SQL语法有错误;检查手册 对应于MySQL服务器版本的正确语法 使用“近”;在更新用户之前创建触发器ca_passwd_触发器 每行从第1行开始 分隔符$$ 如果存在ca_passwd_触发器,则丢弃触发器; $$ 在更新用户之前创建触发器ca_passwd_触发器 每行 开始 如果((NEW.passwd OLD.passwd)=0),则 设置NEW.passwd_modified_at=NOW(); 如果结束; 结束$$ 定界符;

我试图制造这个触发器,但我得到了

[Err]1064-您的SQL语法有错误;检查手册 对应于MySQL服务器版本的正确语法 使用“近”;在更新用户之前创建触发器ca_passwd_触发器 每行从第1行开始

分隔符$$
如果存在ca_passwd_触发器,则丢弃触发器;
$$
在更新用户之前创建触发器ca_passwd_触发器
每行
开始
如果((NEW.passwd OLD.passwd)=0),则
设置NEW.passwd_modified_at=NOW();
如果结束;
结束$$
定界符;

您在查询中添加了查询终止符
在两个位置使用分隔符
$$
。下面的查询具有正确的查询终止符和分隔符

分隔符$$
丢弃触发器(如果存在)ca_passwd_TRIGGER;——删除了终止符后的分隔符$$;
在更新用户之前创建触发器ca_passwd_触发器
每行
开始
如果((NEW.passwd OLD.passwd)=0),则
设置NEW.passwd_modified_at=NOW();
如果结束;
END$$--删除了终止符;在分隔符之前$$
定界符;
delimiter $$
DROP TRIGGER IF EXISTS ca_passwd_trigger ;
$$
CREATE TRIGGER ca_passwd_trigger BEFORE UPDATE ON users
FOR EACH ROW
BEGIN
    IF ((NEW.passwd <=> OLD.passwd) = 0) THEN
        SET NEW.passwd_modified_at = NOW();
    END IF;
END;$$
delimiter ;