PHP和odbc到mssql - 列名未正确显示

时间:2012-03-07 20:22:02

标签: php odbc freetds

尝试通过php中的odbc从MSSQL数据库返回字段名称时遇到问题。我的查询如下:

SELECT t.ID, t.end_user, ts.name 'status', tp.name 'priority' FROM tickets t INNER JOIN status ts ON ts.ID = t.status INNER JOIN priorities tp ON tp.ID = t.priority

问题是,当我在MSSQL服务器上运行时,列名称按预期出现(ID,end_user,status,priority),但是当我在页面上运行它时,我获得了两个状态的“名称”和优先级列。

是否有任何押韵或原因导致我没有看到我的列重命名?我在查询中尝试使用“AS”,没有运气。

Box是运行FreeTDS odbc驱动程序版本7.2的ubuntu

1 个答案:

答案 0 :(得分:3)

我刚刚通过电话与J_D交谈,(总互联网蠢事!),他建议将

+''
添加到列名中。这似乎可以绕过这个错误。以上代码必须更改为

SELECT t.ID, t.end_user, ts.name+'' 'status', tp.name+'' 'priority' FROM tickets t INNER JOIN status ts ON ts.ID = t.status INNER JOIN priorities tp ON tp.ID = t.priority

这有点像黑客,但它会起作用。显然,当它试图破译ODBC结果时,这是PHP中某种错误的结果。

如果有人提出不涉及更改SQL代码的建议,我个人会非常感激,节省了我更改SQL代码的页面和页面。

在其他新闻中,J_D,谢谢你在电话里对一个随意的陌生人做个绅士。