2013-07-23 4 views
0

oracle (odbc 연결은 필요합니다)에 테이블을 생성합니다. 그리고 나는 자동 증가 열을 만들고 싶다. 그것은 문제가되지 않습니다. 내가 수행해야 할 쿼리는 다음입니다 : NEW 키워드, PDO는 그래서 제대로 트리거를 만들 수 없습니다 오전 명명 된 매개 변수로 취합니다PHP PDO 명명 된 자리 표시자를 비활성화하는 방법이 있습니까 (Oracle AUTOINCREMENT 문제)

CREATE TRIGGER TBIUR_FOLDER_FOLDER_ID 
BEFORE INSERT OR UPDATE 
OF 
FOLDER_ID 
ON FOLDER 
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW 
BEGIN 
IF :NEW."FOLDER_ID" IS NULL 
THEN SELECT "SQ_FOLDER_FOLDER_ID".NEXTVAL INTO :NEW."FOLDER_ID" FROM dual; 
END IF; 
END; 

문제는입니다. 나는 데이터베이스에서 확인하면 생성 쿼리는 다음과 같습니다

IF :1."FOLDER_ID" IS NULL 

그렇게 : 1 : NEW에 의해 대체된다/그리고 난 어떻게 해야할지 모르겠 ...

답변

0

예.
구문 분석 된 준비된 문을 사용하지 않도록 설정할 수 있습니다.
분명히 필요하지 않으므로이 쿼리에는 사용하지 마십시오. 그냥 query() 또는 exec()

+0

안녕하세요, 감사를 사용하여 그것을 실행하지만 이상한, 내가 사용하고 있습니다 -> 쿼리 및 작동하지 않지만 -> 간부 직접 작동 좋아. ... 이상하지만 감사합니다. 내 하루를 축하했습니다. –

+0

php.net에서 query() 및 exec() 메소드의 $ statement 매개 변수에 대한 설명에는 차이점이 없습니다. 그러나 obviosly 그것으로 끝내는 다른 것이 있습니다. :/ –

+0

예. query()는 단일 쿼리를 처리하지만 exec()는 덤프, 프로 시저, 트리거 등을 포함하여 원하는 모든 것을 전송합니다. –