2014-02-20 182 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