尝试通过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
答案 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,谢谢你在电话里对一个随意的陌生人做个绅士。