在 DB2 SQL 和 PHP 中使用文字时返回的垃圾字符
Posted
技术标签:
【中文标题】在 DB2 SQL 和 PHP 中使用文字时返回的垃圾字符【英文标题】:Garbage characters returned when using literals with DB2 SQL and PHP 【发布时间】:2011-06-22 14:26:18 【问题描述】:语句与此类似——
$sql = "SELECT foo1, foo2, foo3, fooDate1, fooDate2, 'Open' FROM some.table";
然后我回到 html 中
1 801566 11451 06/21/2011 06/22/2011 ����
我认为这与字符编码有关?
编辑:
我在 Zend 论坛上找到了解决方案。
"2. 将以下行添加到 Apache 配置文件 /www/zendsvr/con/httpd.conf : 默认FsCCSID 37"
来源: http://forums.zend.com/viewtopic.php?f=77&t=8154&p=28348&hilit=db2+ascii#p28348
【问题讨论】:
尝试 "SELECT foo1, foo2, foo3, fooDate1, fooDate2, 'Open' FROM some.'table'";不确定,但可能会保留桌子。 @Headspin:这不是问题,因为查询正在返回一个结果集。这是一个字符编码问题。 【参考方案1】:尝试使用双引号:
$sql = "SELECT foo1, foo2, foo3, fooDate1, fooDate2, \"Open\" FROM some.table";
【讨论】:
收到此错误:42703:未找到列或全局变量打开。 SQLCODE=-206 DB2 对字符串文字使用单引号。双引号会使其将其视为列名。以上是关于在 DB2 SQL 和 PHP 中使用文字时返回的垃圾字符的主要内容,如果未能解决你的问题,请参考以下文章
对 DB2 for z/OS 的存储过程调用中不支持字符串文字
尝试启动 DB2 实例时出错。返回代码为2 , SQL消息 为: PROCESS_ERROR
DB2 和 SQL-如何在特定字段中返回最大值,以便每行只显示一条记录;从多个表中提取数据
[DB2 for i5/OS]SQL0104 - 令牌?无效。有效标记:) ,., SQL 状态 37000