2014-02-20 232 views
1

以下綁定不起作用?它可以防止以前的輸出事件。PHP OCI_BIND_BY_NAME NOT WORKING

oci_bind_by_name($stid, ':CONTRACT', 'BC'); 
oci_bind_by_name($stid, ':TAX_REGIME_DB', 'VAT'); 

下一個工作

$contract = 'BC'; 
    $vat = 'VAT'; 

oci_bind_by_name($stid, ':CONTRACT', $contract); 
oci_bind_by_name($stid, ':TAX_REGIME_DB', $vat); 

請有誰能夠告訴我有什麼區別?

回答

3

oci_bind_by_name()預計變量引用作爲其第三個參數,所以您的靜態字符串值不是有效的參數。你必須必須綁定一個變量作爲第三個參數。這就是爲什麼你的第二個例子確實有效。

您需要將字符串放入變量中,並將它們綁定到第二種情況。

The function prototype:

bool oci_bind_by_name (resource $statement , string $bv_name , mixed &$variable [, int $maxlength = -1 [, int $type = SQLT_CHR ]]) 

我會建議調高錯誤報告和啓用display_errors。您應該看到有關期待參考的論點的警告。總是在開發中做到這一點:

; In php.ini 
error_reporting = E_ALL 
display_errors = On 

// Or at runtime 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
+0

謝謝邁克爾..你還可以請幫我關於我的相關問題嗎? http://stackoverflow.com/questions/21911270/php-oci-bind-by-name-in-foreach-not-working – Calipso