以下绑定(bind)不起作用?它可以防止先前的输出发生事件。
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);
请问谁能告诉我有什么区别吗?
最佳答案
oci_bind_by_name()
需要变量引用作为其第三个参数,因此您的静态字符串值不是有效的参数。您必须绑定(bind)一个变量作为第三个参数。这就是为什么你的第二个例子确实有效。
您需要将字符串放入变量中并绑定(bind)它们,就像在第二种情况下所做的那样。
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);
关于PHP OCI_BIND_BY_NAME 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21910076/