I have the same problem getting data from a linked server. I was using a view to combine data from databases on different servers. The view works fine in SQL Server Management Studio and with the sqlcmd utility. I connected from a remote machine using the same username and password in sqlcmd that I do with php. Php also fails to return data for a view referencing data in another database on the same server.
Php will provide data for a view referencing tables in the same database.
This was tested using the same code page only changing the query and returned field names. I am using SQL Server 2005, php 5.2.5, and mssql library version 7.0.