2
我正在PHP + Zend Framework上實現一個非常簡單的會計程序。我有這樣的觸發設置:MySQL觸發器不應該從PHP發起時觸發,但從命令行執行
CREATE TRIGGER consolidate_balance BEFORE INSERT ON balance FOR EACH ROW
BEGIN
IF (NEW.amount IS NOT NULL) THEN
UPDATE accounts SET accounts.balance = accounts.balance + NEW.amount WHERE accounts.id = NEW.account_id;
END IF;
END
我的腳本執行的balance
表只插入和從accounts
表中選擇,以取得平衡。
問題:當PHP執行INSERT查詢時,觸發器不會被觸發(或不起作用)。但是,如果我從MySQL日誌中複製查詢並將其粘貼到MySQL的命令行客戶端中,則它可以正常工作,並獲得所需結果(accounts
表已正確更新)。思考?
爲了以防萬一,所有查詢都由Zend_Db_Table_Row實例處理。