2013-07-23 30 views
0

我在oracle中創建表(odbc連接 - 必須)。我想創建自動增量列。這不是問題。我需要執行的查詢如下: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; 

的問題是:新的關鍵字,PDO將其作爲命名的參數,所以我無法正確地創建觸發器。當我在數據庫中檢查創建查詢:

IF :1."FOLDER_ID" IS NULL 

這樣:1:NEW被替換爲/,我不知道該怎麼辦......

回答

0

是。
您可以禁用準備好的語句解析。
只是不要將它們用於此查詢,因爲它顯然不需要它們。只是運行它使用query()exec()

+0

嗨, 謝謝,但它很奇怪,我使用 - >查詢,它不工作,但 - > exec直接工作正常。 ...奇怪的是,但是,謝謝你救了我的一天 –

+0

在php.net上,query()和exec()方法的$ statement參數的描述沒有區別。但顯然有不同的做法。 :/ –

+0

是的。 query()處理單個查詢,而exec()發送所有你想要的東西,包括轉儲,過程,觸發器等 –

相關問題