【发布时间】: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 statements 和bound parameters 一起使用。 -
所以使用类似 mysqli_connect 的东西?我已经尝试过了,但没有改变任何东西。