我有一个php脚本,如果ff行在查询上,它会显示500 Internal Server Error
。
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
检查了所有日志,甚至尝试制作一个应该出错的脚本。我看到了那个脚本的错误。但不是这个剧本。它没有记录错误。
这是一些疯狂的SQL。。。但我不认为这是你"错误500"的来源。
事实上,我认为根本原因可能是HTTP 404:找不到文件:
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);
如果您有PHP CLI,请尝试从命令行调试:
php -l /path/to/your/php_script.php
对我来说,10次中有9次,500个状态代码来自一个小语法错误。。。您是否可以将实际的查询代码块粘贴到PHP文件中?我看到您粘贴了正在使用的查询字符串,但查看更多会有所帮助。