当值1未加引号时,使用带有Zend的select不返回结果

时间:2016-01-05 10:22:02

标签: php oracle zend-framework

使用PHP,Oracle和Zend 1.12。我有一个查询:

SELECT * FROM tablename WHERE id = 1;

通常它应该返回一行,但不知何故,在更改Oracle服务器之后(这使我认为这个问题是数据库配置问题),它什么都不返回。现在,将整数1引用为:

SELECT * FROM tablename WHERE id = '1';

它会返回该行。通过返回,我说结果显示给PHP。 例如,如果我在SQL Developer中运行相同的未加引号的查询,它会正确返回行,这使我相信它不是数据库配置问题,而是Zend的。

但是同一个项目正在其他服务器上使用,并且没有任何问题可以返回未加引号的1个值。

它只发生在1.任何更大或小于1的东西都能完美地运作。

建议去哪儿看?

1 个答案:

答案 0 :(得分:0)

将NLS_NUMERIC_CHARACTERS设置为",。"固定发布的手册说明:

  

如果您已建立除句点(。)以外的十进制字符   用初始化参数NLS_NUMERIC_CHARACTERS,然后你   必须使用' text'指定数字文字。符号。在这些情况下,   Oracle会自动将文本文字转换为数字值。

https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm

Oracle 10.2g确认了此行为。