由于SQL查询导致PHP 500内部服务器错误
我有一个php脚本,如果ff行在查询中,它会显示由于SQL查询导致PHP 500内部服务器错误,php,sql,Php,Sql,我有一个php脚本,如果ff行在查询中,它会显示500内部服务器错误 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(su
500内部服务器错误
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上的错误日志---
检查了所有日志,甚至尝试创建一个脚本,该脚本应该会出错。我看到了那个脚本的错误。但不是这个脚本。它没有记录错误。这是一些疯狂的SQL。。。但我不认为这是你“错误500”的根源 事实上,我认为根本原因可能是HTTP 404:找不到文件:
文件不存在:/home/blazegam/public\u html/test/404.shtml
相反,我认为:
1) 客户端请求的链接无效
2) 服务器尝试。。。而且失败了。。。生成错误404
3) 最终,客户机收到一个错误500
问:您确定调用的是正确的服务器端文件和目录吗
附言:
我不知道w0rldart为什么删除了他的回复。但是为了调试的目的,启用完整的错误报告实际上是一个非常好的主意:
error_reporting(E_ALL);
ini_set("display_errors", 1);
这是一些疯狂的SQL。。。但我不认为这是你“错误500”的根源 事实上,我认为根本原因可能是HTTP 404:找不到文件:
文件不存在:/home/blazegam/public\u html/test/404.shtml
相反,我认为:
1) 客户端请求的链接无效
2) 服务器尝试。。。而且失败了。。。生成错误404
3) 最终,客户机收到一个错误500
问:您确定调用的是正确的服务器端文件和目录吗
附言:
我不知道w0rldart为什么删除了他的回复。但是为了调试的目的,启用完整的错误报告实际上是一个非常好的主意:
error_reporting(E_ALL);
ini_set("display_errors", 1);
如果您有PHP CLI,请尝试从命令行调试:
php -l /path/to/your/php_script.php
对我来说,10次中有9次,500个状态码来自一个小语法错误。。。您是否可以将实际的查询代码块粘贴到PHP文件中?我看到您粘贴了正在使用的查询字符串,但这将有助于了解更多信息。如果您有PHP CLI,请尝试从命令行调试:
php -l /path/to/your/php_script.php
对我来说,10次中有9次,500个状态码来自一个小语法错误。。。您是否可以将实际的查询代码块粘贴到PHP文件中?我看到您粘贴了正在使用的查询字符串,但这将有助于查看更多信息。规范化该表是否更有意义,这样您就不必对每个查询都进行所有可怕的操作?查看错误日志以了解实际错误。这是SQL小姐吗?在代码中使用
mssql\u get\u last\u message()
查看错误,但规范化是不可能的。无法更改设计。是的,我尝试在php上使用它捕捉错误。但它只显示500个内部错误。我正在使用cPanel,知道在哪里可以找到日志吗?打开错误报告,然后再次检查日志<代码>错误报告(E_全部)代码>或在设置了ini\u的屏幕上显示(“显示错误”,1)代码>规范化该表是否更有意义,这样您就不必对每个查询执行所有可怕的操作?查看错误日志以了解实际错误。这是SQL小姐吗?在代码中使用mssql\u get\u last\u message()
查看错误,但规范化是不可能的。无法更改设计。是的,我尝试在php上使用它捕捉错误。但它只显示500个内部错误。我正在使用cPanel,知道在哪里可以找到日志吗?打开错误报告,然后再次检查日志<代码>错误报告(E_全部)代码>或在设置了ini\u的屏幕上显示(“显示错误”,1)代码>