2

尝试通过 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、状态、优先级),但是当我在我的页面上运行它时,我得到状态和优先级列的“名称” .

为什么它没有看到我对列的重命名有什么押韵或原因吗?我尝试在查询中使用“AS”,但没有运气。

Box是ubuntu运行FreeTDS odbc驱动7.2版

4

1 回答 1

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

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

如果有人有不涉及更改 SQL 代码的建议,我个人将不胜感激,为我节省了更改 SQL 代码页面和页面的时间。

在其他新闻中,J_D,感谢您在电话中对一个随机的陌生人如此绅士。

于 2012-10-18T17:56:20.123 回答