3

このコードは、Apache スタンドアロン 2.2.21 を搭載した開発マシン WinXPsp3 で作成しました。クエリはうまくいきました。

次に、php 5.3.5 Windows インストールで apache 2.2 Windows インストールがあり、SQL Server マシンである本番マシン WinXPsp3 に php をコピーしましたが、クエリがクラッシュしました。

本番機のapacheとphpをアンインストールし、開発機からスタンドアローン版をコピーしたのですが、apacheを起動するとMSCPV100.dllが無いというエラーが出ました。MS C++ Redist をインストールしたところ、その問題はなくなりました。

クエリは次のとおりです。

    セレクトトップ (50)
    [ID]、
    (SELECT ケース
    WHEN [場所] が null の場合は「不明」
    WHEN [場所]='' THEN '不明'
    ELSE UPPER([場所]) END
     + ', ' as [text()] FROM dbo.[OtherTable]
    WHERE [OtherTable].[Key]=[Table].[ID] FOR XML path('')) AS ロケーション
    FROM テーブル

(ここでのフォーマットの誤りは、他のApacheインストールで機能するため、実際のクエリを反映したものではありません)

クエリは、[text()] の前の小文字の「AS」で「キーワード 'as' 付近の構文が正しくありません」と詰まる。

クエリはもともと大文字で、さらに多くのフィールドがあったため、失敗の説明がどの「AS」について話しているかがわかるまで小文字を使用しました。

text() の前後の "[]" を "''" に置き換えてみましたが、うまくいきませんでした。

私が真実であると知っている事実:

  • Apache のインストールは同じです。

  • PHPのインストールは同じです。


  • クエリは、別のマシンにインストールされた同じ apache を介してホストされている場合に正常に機能します。


  • apache/php のアップグレード後、他のクエリは本番マシンで正常に動作しています。

この情報から、Apache、SQL サーバー、PHP、またはクエリではなく、運用マシンに問題があると思われます。それが何であるかについてのアイデアはありますか?

私が言及しなかったいくつかのこと:

PHP 接続タイプは odbc です。

両方のマシンの SQL Server ODBC ドライバーは 2000.85.1132.0 ですが、運用マシンには SQL Server Native Client 10.0 バージョン 2007.100.2531.00 もあります。

4

1 に答える 1

0

OK、私はスナフを引っ張った - 私は一方のサーバーでプラス記号を「endode」していましたが、もう一方のサーバーでは「encodeURIComponent」していました。コピー/貼り付けはこれで終わりです - 残念です。とにかく見てくれてありがとう!

于 2012-10-19T17:27:28.827 に答える