2012-07-28 61 views
0

我有一個php腳本,顯示500 Internal Server Error如果ff行在查詢中。PHP 500內部服務器由於SQL查詢而導致的錯誤

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 

經過甚至試圖使一個腳本,應該錯誤的日誌。我看到了該腳本的錯誤。但不適用於此腳本。它沒有記錄一個錯誤。

+3

規格化該表格是否更有意義,因此您不必對每個查詢執行所有可怕的操作? – 2012-07-28 20:50:56

+1

查看錯誤日誌中的實際錯誤。這是MS SQL嗎?使用代碼中的'mssql_get_last_message()'也可以看到錯誤 – 2012-07-28 20:51:22

+0

正常化不會出現問題。不能改變設計。 – nambla 2012-07-28 20:57:27

回答

1

這是一些瘋狂的SQL ......但我不認爲這是你的「錯誤500」的來源。

其實,我覺得根本原因可能是HTTP 404:未找到文件:

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

相反,我認爲:

1)客戶端請求的無效鏈接

2)服務器嘗試...並且失敗...以生成錯誤404

3)最終,客戶端接收到錯誤r 500

問:你是肯定你打電話給正確的服務器端文件和目錄嗎?

PS: 我不知道爲什麼w0rldart刪除了他的回覆。但對於調試的目的,從而實現完整的錯誤報告其實是一個相當不錯的主意:

error_reporting(E_ALL); 
ini_set("display_errors", 1); 
0

如果你有PHP CLI,嘗試調試這個命令行:

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

9次了10對我來說,500個狀態代碼來自一個小小的語法錯誤......你能否將實際查詢的代碼塊粘貼到你的PHP文件中?我看到你粘貼了你正在使用的查詢字符串,但它會有助於看到更多。

相關問題