'PDOException' with message 'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active

前端 未结 2 642
無奈伤痛
無奈伤痛 2021-01-21 00:38

I know this question has been asked many times, but the commonly-accepted answers didn\'t help me. But quite by accident I stumbled on an answer.

Here\'s the setup: I h

2条回答
  •  礼貌的吻别
    2021-01-21 00:52

    Trigger can be created via PDO::exec() even when PDO::ATTR_EMULATE_PREPARES = false:

    setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute (PDO::ATTR_EMULATE_PREPARES, false);
    $db->setAttribute (PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
    
    $db->exec("CREATE TRIGGER `CirclesClosureSync` AFTER INSERT ON Circles
    FOR EACH ROW BEGIN
        INSERT INTO CirclesClosure (ancestor, descendant) 
        SELECT ancestor, NEW.ID from CirclesClosure WHERE descendant=NEW.Parent;
        INSERT INTO CirclesClosure (ancestor, descendant) values (NEW.ID, NEW.ID);
    END;");
    

提交回复
热议问题