我在我的开发机器WinXPsp3上编写了代码,该机器具有独立的apache 2.2.21。查询工作正常。
然后我将php复制到我的生产机器WinXPsp3上,它安装了带有php 5.3.5 windows安装的apache 2.2 windows,并且是SQL Server机器,但是查询崩溃了。
我在生产机器上卸载了apache和php,并从开发机器上复制了我的独立版本,但是当我启动apache时,我收到了MSCPV100.dll丢失的错误。 我安装了MS C ++ Redist,这个问题就消失了。
查询如下:
SELECT TOP (50) [ID], (SELECT Case WHEN [Location] is null then 'Unknown' WHEN [Location]='' THEN 'Unknown' ELSE UPPER([Location]) END + ', ' as [text()] FROM dbo.[OtherTable] WHERE [OtherTable].[Key]=[Table].[ID] FOR XML path('')) AS Locations FROM Table
(这里的任何格式错误都不能反映我的实际查询,因为它适用于其他apache安装)
查询在[text()]之前的小写“AS”上窒息,“关键字附近的语法不正确”为“”。
查询最初是大写的,并且有更多的字段,所以我使用小写字母,直到找到故障描述所讨论的“AS”。
我尝试用“''”替换text()周围的“[]”,但这没有帮助。
我知道的事实是真的:
apache安装完全相同。
php安装完全相同。
通过相同的安装托管查询时工作正常 apache在另一台机器上。
其他查询在生产机器上正常工作 apache / php升级。
这些信息让我相信生产机器存在一些问题,而不是apache,sql server,php或查询。关于那可能是什么的任何想法?
我没有提及的一些事情:
PHP连接类型是odbc。
两台计算机上的SQL Server ODBC驱动程序均为2000.85.1132.0,但生产计算机还具有SQL Server Native Client 10.0版本2007.100.2531.00。
答案 0 :(得分:0)
好吧,我拉了一个小麻烦 - 我是#"在一台服务器上使用加号,而我是#34; encodeURIComponent"另一方面。这么多的复制/粘贴 - 我的坏。无论如何,感谢您的光临!