PHP OCI_BIND_BY_NAME 不起作用

标签 php bind oracle-call-interface

以下绑定(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)它们,就像在第二种情况下所做的那样。

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);

关于PHP OCI_BIND_BY_NAME 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21910076/

相关文章:

php - 使用未定义常量 OCI_CRED_EXT - 假设 'OCI_CRED_EXT' laravel

php - 应该返回整数的查询返回 bool 值

PHP/MySQL 在数据库中交换位置 + JavaScript (jQuery)

php - 有没有办法用 yii\rbac\PhpManager 刷新 Yii2 中缓存的 rbac 项?

javascript - Angular 2,与谷歌地图事件一起使用的子组件丢失上下文

javascript - jQuery Mobile——事件绑定(bind)

phpunit assertNull 损坏了 zend_mm_heap

java - 如何在 LDAP 中使用 DN 和密码在 Java 中进行绑定(bind)?

java - 使用钱包实例化 Oracle 数据源,无需指定用户名和密码

sql - Oracle OCI C 代码中的错误 OCI_INVALID_HANDLE