PHP + Zend Framework에서 매우 간단한 회계 프로그램을 구현하고 있습니다. 나는이 트리거가 설정 한 :PHP에서 가정 할 때 MySQL 트리거가 실행되지 않지만 명령 줄에서는 실행되지 않습니다.
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 인스턴스에서 처리되고 있습니다.