2012-06-21 97 views
1

我正在做一個非常基本的Oracle數據庫插入,用RETURNING INTO子句獲取主鍵。儘管我不斷得到空回報,但我無法弄清楚我的生活會出現什麼問題。除了這個問題,行插入非常好。代碼如下:PHP/ORACLE oci_bind_by_name和RETURNING INTO得到PK

$requestParentSQL = "INSERT INTO 
      KRANE_REQUEST (
       DATE_REQUESTED, 
       DATE_EMAILED, 
       PERSON_ID, 
       AUTHORISER_ID 
       ) 
      VALUES (
       SYSDATE, 
       SYSDATE, 
       '$theUser', 
       '$theAuthoriser' 
       ) 
      RETURNING 
       KRANE_REQUEST_ID 
      INTO 
       :NEW_KRID"; 

$oracleConnection = oci_connect(_DATABASEUSERNAME, _DATABASEPASSWORD, _DATABASE); 
$oracleStatement = oci_parse($oracleConnection, $requestParentSQL); 
oci_bind_by_name($oracleStatement, ':NEW_KRID', $theNewKRID, 8); 
oci_execute($oracleStatement, OCI_DEFAULT); 
oci_commit($oracleConnection); 
oci_free_statement($oracleStatement); 
oci_close($oracleConnection); 
+0

'NEW_KRID'是一個int還是char?默認情況下它會綁定'SQLT_CHAR',因爲你省略了第5個參數。 –

+0

數據類型是數字(12),我試着定義SQLT_CHR和SQLT_INT,以及一些其他選項,只是爲了看看會發生什麼。但他們都沒有回報價值。 – Sebconn

+0

僅供參考我嘗試使用oci_bind_by_name插入日期變量到表中,工作正常。 – Sebconn

回答

1

發現問題。我打電話給$ theNEWKRID而不是$ theNewKRID。我的錯。