【问题标题】:Empty page on sql - php queryingsql上的空页面 - php查询
【发布时间】:2018-06-20 00:12:43
【问题描述】:

我正在创建一个网站,人们可以在其中查看他们的个人统计数据。我通过使用 php 系统检索 SQL 数据来做到这一点。这是我的 2 个文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<form action="search.php" method="GET">
    <input type="text" name="query" />
    <input type="submit" value="Search" />
</form>
</body>
</html>

这是用户点击搜索时加载的文件:

<?php
mysql_connect("localhost", "root", "Medionakoya0102") or die("Error 
connecting to database: ".mysql_error());
mysql_select_db("isolate") or die(mysql_error());
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title>Search results</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>
    <?php
$query = $_GET['query']; 
$min_length = 3;
if(strlen($query) >= $min_length){

    $query = htmlspecialchars($query); 

    $query = mysql_real_escape_string($query);

    $raw_results = mysql_query("SELECT * FROM Player
        WHERE (`name` LIKE '%".$query."%') OR (`uuid` LIKE '%".$query."%')") 
 or die(mysql_error());

    if(mysql_num_rows($raw_results) > 0){

        while($results = mysql_fetch_array($raw_results)){

            echo "<p><h3>".$results['join_date']."</h3>".$results['gems']." 
</p>";
        }

    }
    else{
        echo "No results";
    }

}
else{
    echo "Minimum length is ".$min_length;
}
?>
</body>

</html>

现在的问题是,索引加载,但是当我点击搜索时,有时页面只是空白,或者它给我一个错误:HTTP ERROR 500

希望有人能帮忙

【问题讨论】:

  • 这可能是由于您使用了mysql_* 函数。它们自 v5.5(2013 年 6 月)起已被弃用,自 v7.0(2015 年 12 月)起已被删除。而是将mysqli_*PDO 函数与prepared statementsbound parameters 一起使用。
  • 所以使用类似 mysqli_connect 的东西?我已经尝试过了,但没有改变任何东西。

标签: php html sql querying


【解决方案1】:

500 HTTP 错误是来自网络服务器的响应,因此您的表单正确提交,但很可能是来自 PHP 的错误。检查您的 Web 服务器日志以获取与表单提交相关的错误消息。如果您不确定错误告诉您什么,请编辑您的问题以包含错误,我相信我们可以解决它。

此外,有关您的环境的一些信息也会很有用:您使用的是哪个网络服务器、您的 PHP 版本是什么等。

【讨论】:

  • 说第2行有错误,就是连接形式。
  • 尝试了 Alex 展示的 mysqli 东西,但也没有帮助
  • @TristanVermeesch 下一步是找出错误。您可以从日志中发布该行吗?
猜你喜欢
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2016-01-28
相关资源
最近更新 更多