2个相同的apache / php安装从同一个SQL Server数据库返回不同的结果

时间:2012-10-19 00:25:55

标签: php sql-server apache

我在我的开发机器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。

1 个答案:

答案 0 :(得分:0)

好吧,我拉了一个小麻烦 - 我是#"在一台服务器上使用加号,而我是#34; encodeURIComponent"另一方面。这么多的复制/粘贴 - 我的坏。无论如何,感谢您的光临!