Witam chcę wykonać poniższe zapytanie z poziomu PHP - najważniejsze jest użycie DELIMITER.

        DROP TRIGGER IF EXISTS fvat_number;
        DROP PROCEDURE IF EXISTS generuj_fvatno;

        DELIMITER $$

        CREATE PROCEDURE generuj_fvatno(out numerek VARCHAR(30))
        BEGIN
            SELECT
            CONCAT(DATE_FORMAT(CURDATE(), '%Y'),'/',COUNT(fvat_no) + 1) INTO numerek
            FROM t_faktury
            WHERE
            SUBSTRING_INDEX(fvat_no, '/', 1) = DATE_FORMAT(CURDATE(), '%Y')
            LIMIT 1 ;
        END$$

        CREATE TRIGGER fvat_number BEFORE INSERT ON t_faktury
        FOR EACH ROW BEGIN
            CALL generuj_fvatno(@out);
            IF @out = NULL THEN
            SET NEW.fvat_no = CONCAT(DATE_FORMAT(CURDATE(), '%Y'),'/', 1);
            ELSE
            SET NEW.fvat_no = @out;
            END IF;
        END$$

Gdy użyję w taki sposób:

        $tmp_sql = ...
        $sth = $dbh->prepare($tmp_sql);
        $sth->execute(); 

Dodstaje błąd

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: Syntax error or access violation: 1064 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 'DELIMITER $$' at line 1 in /home/easyrentall/ftp/easyrentall/fpanel/install.php on line 93

Gdy chcę wykonać samo $tmp_sql = "DELIMITER $$"; również otrzymuje błąd.

O co chodzi ? :/