PHP OCI_BIND_BY_NAME无法正常工作

时间:2014-02-20 14:02:16

标签: php bind oci

以下绑定无效?它可以防止先前输出的事件。

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

请有人告诉我有什么区别吗?

1 个答案:

答案 0 :(得分: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);