为啥我的 SQL 查询会出现内部服务器错误?

Posted

技术标签:

【中文标题】为啥我的 SQL 查询会出现内部服务器错误?【英文标题】:Why do I get an internal server error from my SQL query?为什么我的 SQL 查询会出现内部服务器错误? 【发布时间】:2015-04-06 23:25:55 【问题描述】:

我正在尝试从我的数据库中检索一些数据,我似乎能够连接到数据库,因为在测试连接后我没有收到错误消息。但是当我尝试运行选择查询时,会导致内部错误。

如果我从查询中取出 FROM 部分,则页面加载时没有数据。如果我重新添加 FROM 部分,并从中选择表,则会发生内部错误。

代码如下:

$con = mysqli_connect("50.62.209.87:3306","myusername","mypassword",
"FiveExtras");
// Check connection
if (mysqli_connect_errno())
  
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  

     $query = "SELECT `EventVenue`,`EventDate`,`EventTime`,
     `EventPostCode` FROM `event`";

  $result = mysqli_query($con, $query);


$row = $result;

echo $row;

【问题讨论】:

查看您的错误日志 我不知道我在寻找什么 如果您使用 XAMPP,请查看 this question 不使用XAMPP,反正会看看 【参考方案1】:

你改变你的 htacess 了吗?对 .htacess 的更改通常会导致内部服务器错误。或者您的主机ip 不好(试试 no-ip.com,他们为您的 ip 提供免费子域)


我用移除的端口检查了它是否可以正常工作(嗯...没有连接但主机没有错误),所以可能与端口有关


如果错误 500 仍然存在,请尝试获取支持票或发送电子邮件给网站管理员或获取其他托管服务提供商


为什么你会说没有错误?

我们开始:

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given
in /home/u451361813/public_html/test.php on line 13

Warning: mysqli_connect(): (28000/1045): Access denied for user
'myusername'@'185.28.20.221' (using password: YES) in /home/u451361813
/public_html/test.php on line 3
Failed to connect to MySQL: Access denied for user 
'myusername'@'185.28.20.221' (using password: YES)

第一个是没有信息返回第二个是没有密码

【讨论】:

OK tahnsk,我从我的 godadddy 管理页面上的数据库部分获取了主机地址,所以我认为没问题 我希望 OP 没有将 ACTUAL ID/pwd 包含到实时数据库中。 不,我使用 'myusername' 和 'mypassword' 表明我没有将字段留空 我选择了数据库以查看数据库连接是否正常,这可能是您可以看到它而没有错误的原因。我现在已经把数据库选择放回去了,所以错误又回来了 你试过你的ip和/或端口了吗?【参考方案2】:

重写你的连接:

$db_conn = mysqli_connect("$host", "$dbuser", "$dbpass") or die("Unable to connect to the database");
mysql_select_db("$dbase", $db_conn) or die("Unable to select the database");

$query = mysqli_query("SELECT `EventVenue`,`EventDate`,`EventTime`,
 `EventPostCode` FROM `event`");

为什么是$result = $row

编辑:为了更好的查询,请使用"SELECT * ... "

【讨论】:

我已将代码更改为您的。连接代码似乎可以工作,但数据库选择导致内部错误 它给出了 500 个内部错误,我要进行屏幕打印,但找不到向您展示的方法。 注意一个小错字,应该是`mysqli_select_db'。 使用SELECT * ... 并不能使其成为更好的查询。只选择您需要的字段。

以上是关于为啥我的 SQL 查询会出现内部服务器错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥从 ajax 调用 web 服务会引发内部服务器 500 错误?

Laravel:为啥我的 ajax 请求返回“500(内部服务器错误)”?

为啥 MySql 会出现“子查询返回超过 1 行”错误?

为啥开启虚拟机显示内部错误

Azure 功能:运行/测试模式下出现 500 个内部内部服务器错误

Drupal - 为啥在视图中的 SQL 查询中出现“FROM 节点节点”?