我有一台安装了PHP 5.2.13的unix服务器,它可以访问两台SQL服务器(一台运行MSSQL SERVER 2000,另一台运行MSSQL 2005)。
它使用FreeTDS - 详情:
我正在使用unixODBC-2.3.1
MSSQL 2000服务器很好,我可以像运行MySQL一样运行所有SQL语句并使用mssql_num_rows和mssql_fetch_assoc。
但是,MSSQL 2005服务器不能使用mssql_num_rows或mssql_fetch_assoc - 你必须使用odbc_fetch_row。
这不是一个真正的问题,我认为这只是因为服务器的安装不同。
但是,我对MSSQL 2005服务器有一个很大的问题:我不能选择另一个字段作为字段!
例如:
SELECT
[EnquiryID] AS "The_Key"
FROM [db].[dbo].[table]
在我的管理应用程序中工作正常(即:不是PHP),但如果我在PHP环境中运行相同的程序,我会得到:
stdClass Object
(
[PK_EnquiryID] => 1
)
您可以看到它应该是[The_Key] => 1
有谁知道我们怎么能绕过这个,拜托?我把头发撕掉了!
干杯
尼尔
答案 0 :(得分:1)
我认为这在freeTDS列表中得到了解答,但问题在于PHP,它对ODBC进行了错误的调用,因此得到基表名而不是标签,这就是你需要的。
答案 1 :(得分:0)
这绝不是一个完美的解决方案,我很想学习处理这个问题的正确方法,但同时,在每个列之后添加
+''
列名,但在AS别名之前,您应该能够绕过此问题。