Php MySQL基本触发器-不工作

Php MySQL基本触发器-不工作,php,mysql,Php,Mysql,我正在尝试创建以下触发器: CREATE TRIGGER clean AFTER INSERT ON `mecze_druzyny` begin DELETE * FROM bramki; END; DELIMITER ; 应在以下步骤之后运行: $sql2 = "INSERT INTO mecze_druzyny (id_druzyny, id_meczu, gospodarz) VALUES ( :team2, :lastmatch, :

我正在尝试创建以下触发器:

CREATE TRIGGER clean
AFTER INSERT ON `mecze_druzyny`
begin
DELETE * FROM bramki;
END;
DELIMITER ;
应在以下步骤之后运行:

$sql2 = "INSERT INTO mecze_druzyny (id_druzyny, id_meczu, gospodarz) VALUES (
        :team2, 
        :lastmatch, 
        :gospodarz)";

$stmt = $db->prepare($sql2);
$stmt->bindParam(':team2', $id2, PDO::PARAM_INT);       
$stmt->bindParam(':lastmatch', $last_match, PDO::PARAM_INT); 
$stmt->bindParam(':gospodarz', $a=0, PDO::PARAM_STR);
$stmt->execute(); 
不幸的是,我得到了一个错误:

1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用“begin”附近的正确语法 从第3行的bramki'中删除*


这是您的删除语法错误

扔掉那个,你就剩下了

从bramki删除

典型的删除将采用以下格式:


DELETE FROM TableName WHERE…
——WHERE子句在这里是可选的

添加分隔符以使其正确。以下是执行此操作的正确语法:

DELIMITER //

CREATE TRIGGER clean
AFTER INSERT
   ON mecze_druzyny FOR EACH ROW

BEGIN

DELETE  FROM bramki;

END; //

DELIMITER ;

这是错误的语法
DELETE*FROM bramki
read up on the function,但是如果没有“*”,它仍然不起作用。我可以向您保证,它永远不会像我写的那样使用
*
,我已经删除了“*”,触发器仍然不起作用。您的分隔符处理看起来有点不对劲,并且它在没有“FOR EACH ROW”的情况下成功创建了?这将删除“bramki表”中的所有记录。它确实应该删除“bramki”表中的所有记录。但是如果没有“*”1064,它仍然不能工作-您的SQL语法中有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第3行“begin DELETE FROM bramki”附近使用的正确语法?为什么OP要“试试这个”?一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。OP为什么要“尝试这个”?一个好的答案总会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。借用手册Sam-@JayBlanchard@Fred ii-:我应该删除我的答案吗?这样你就可以用其他的方法来解决语法问题。是的,也许它能解决这个问题。你还有其他方法吗?那是语法,所以我不能编其他的。留着这个,OP就接受了。