PHP oci_bind_by_name浮动为数值

Eug*_*ene 5 php data-binding oracle oracle-call-interface

我需要将浮点数绑定到OCI语句。

我在做什么:

$price = 0.1
oci_bind_by_name($resource, 'price', $price);
Run Code Online (Sandbox Code Playgroud)

在我的Oracle DB中,“ price”是存储过程的参数,其类型为NUMERIC。

执行我的语句后,出现以下错误:

消息:oci_execute()[function.oci-execute]:ORA-06502:PL / SQL:数字或值错误:字符到数字的转换错误ORA-06512:在第1行

如果$ price是一个整数,则一切正常。在PHP文档http://lv.php.net/manual/zh/function.oci-bind-by-name.php中,我没有找到第五个参数的特殊浮点类型(int $ type = SQLT_CHR)。

找到答案:我只是在操作系统中将小数符号从“,”更改为“”。现在一切正常

Swe*_*ler -1

尝试: oci_bind_by_name($resource, 'price', $price, -1, SQLT_NUM);文档中缺少 SQLT_NUM。