1

我有一个 php 脚本,显示500 Internal Server Errorff 行是否在查询中。

 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

问:你确定你调用了正确的服务器端文件和目录吗?

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 回答