下面是一个在PHP中声明的float:
$floatValue = 6.66;
字符串
将其保存到Oracle数据库,如下所示:
$statement = $connection->prepare("INSERT INTO fooTable (numValue) VALUES($floatValue)");
$statement->execute();
//All good!
型
但是,如果我使用bindParam,则会引发错误ORA-01722:
$statement = $connection->prepare("INSERT INTO fooTable (numValue) VALUES(?)");
$statement->bindParam(1, $floatValue);
$statement->execute();
//ORA-01722 raised
型
这只会发生在float上,int就可以了。
我试着在我的操作系统中更改小数点分隔符,没有问题。
这是怎么回事
为什么只有浮?
是否有专门针对浮点数的bindParam的替代方法..?
2条答案
按热度按时间6tdlim6h1#
对我有用的是在insert语句之前设置ORACLE十进制分隔符(用于会话):
字符串
7tofc5zh2#
为我工作:
字符串
给出预期输出:
型
这是预期的,因为提取转换为字符串。在SQL*Plus中:
型