1

500 Internal Server Errorff行がクエリにあるかどうかを示すphpスクリプトがあります。

 CONVERT(INT,cast(reverse(substring(char_data, 301, 4)) as BINARY(4))) AS maxexperience

それを削除すると、すべてうまくいきます。

$SQL = "SELECT TOP 10
    CONVERT(VARCHAR,substring(char_data, 9, 16)) AS name,
    CONVERT(INT,cast(reverse(substring(char_data, 7, 2)) as BINARY(2))) AS level,
    CONVERT(INT,substring(char_data, 25, 1)) AS type,
    CONVERT(INT,cast(reverse(substring(char_data, 263, 2)) as BINARY(2))) AS strength,
    CONVERT(INT,cast(reverse(substring(char_data, 265, 2)) as BINARY(2))) AS wisdom,
    CONVERT(INT,cast(reverse(substring(char_data, 267, 2)) as BINARY(2))) AS dexterity,
    CONVERT(INT,cast(reverse(substring(char_data, 269, 2)) as BINARY(2))) AS charisma,
    CONVERT(INT,cast(reverse(substring(char_data, 271, 2)) as BINARY(2))) AS intelligence,
    CONVERT(INT,cast(reverse(substring(char_data, 273, 2)) as BINARY(2))) AS constitution,
    CONVERT(INT,cast(reverse(substring(char_data, 309, 2)) as BINARY(2))) AS fame,
    CONVERT(INT,cast(reverse(substring(char_data, 301, 4)) as BINARY(4))) AS maxexperience
FROM CHAR_DATA0 WHERE CONVERT(INT, substring(char_data, 261, 1))=0x00 ORDER BY level DESC";

MSSMSから同じスクリプトを実行してみました-2008

 name       level   type    strength  wisdom  dexterity  charisma   intelligence    constitution    fame    maxexperience
 ladycharm  340     4       3510      1210    5200       2001       1120            4236            14265   1782451348

それは機能します。しかし、phpスクリプトからはエラーが発生します。ご意見をお聞かせください?ありがとうございました。

---cpanelのエラーログ---

 [Sat Jul 28 13:01:24 2012] [error] [client IP] File does not exist: /home/blazegam/public_html/test/404.shtml
 [Sat Jul 28 13:01:24 2012] [error] [client IP] File does not exist: /home/blazegam/public_html/test/favicon.ico
 [Sat Jul 28 13:00:38 2012] [error] [client IP] File does not exist: /home/blazegam/public_html/test/404.shtml
 [Sat Jul 28 13:00:38 2012] [error] [client IP] File does not exist: /home/blazegam/public_html/test/favicon.ico

エラーが発生するはずのスクリプトを作成しようとしても、すべてのログをチェックしました。そのスクリプトのエラーが表示されました。ただし、このスクリプトではありません。エラーは記録されませんでした。

4

2 に答える 2

1

それはいくつかのクレイジーなSQLです...しかし、それが「エラー500」の原因ではないと思います。

実際、根本的な原因は HTTP 404: File not found: かもしれないと思います:

File does not exist: /home/blazegam/public_html/test/404.shtml

代わりに、私は次のように考えています。

1) クライアントが無効なリンクをリクエストしている

2) サーバーはエラー 404 を生成しようと試みますが失敗します

3) 最終的に、クライアントはエラー 500 を返します。

Q:正しいサーバー側のファイルとディレクトリを呼び出しています?

PS: なぜ w0rldart が返信を削除したのかわかりません。しかし、デバッグの目的で、完全なエラー レポートを有効にすることは、実際には非常に良い考えです。

error_reporting(E_ALL);
ini_set("display_errors", 1);
于 2012-07-28T22:32:20.020 に答える
0

PHP CLI を使用している場合は、コマンド ラインからこれを使用してデバッグしてみてください。

php -l /path/to/your/php_script.php

私の場合、10 回のうち 9 回は、500 のステータス コードが小さな構文エラーによるものです... 実際のクエリ コード ブロックを PHP ファイルに貼り付けていただけますか? 使用しているクエリ文字列を貼り付けたようですが、もっと見るのに役立ちます。

于 2012-07-28T22:45:12.480 に答える