【问题标题】:Outdated MYSQL database codes failing to fetch data过时的 MYSQL 数据库代码无法获取数据
【发布时间】:2016-04-27 06:43:09
【问题描述】:

我问过一个关于我的 SQL 数据库中的数据无法获取数据的问题。 我很好地完成了与服务器的数据库连接,它显示“连接成功”,但由于我的代码已过时,服务器无法从 SQL 数据库中获取数据。有人建议我使用 PDO,但我是初学者,所以我想帮助我纠正“search.php”的代码:

<?php
error_reporting(0);
include("config.php");
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MySQL table search</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<style>
BODY, TD {
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
</style>
</head>


<body>

<form id="form1" name="form1" method="post" action="search.php">
<label for="from">From</label>
<input name="from" type="text" id="from" size="10" value="<?php echo $_REQUEST["from"]; ?>" />
<label for="to">to</label>
<input name="to" type="text" id="to" size="10" value="<?php echo $_REQUEST["to"]; ?>"/>
<label>Hotels:</label>
<input type="text" name="string" id="string" value="<?php echo stripcslashes($_REQUEST["string"]); ?>" />
<label>City</label>
<select name="city">
<option value="">--</option>
<?php
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." GROUP BY city ORDER BY city";
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysql_fetch_assoc($sql_result)) {
echo "<option value='".$row["city"]."'".($row["city"]==$_REQUEST["city"] ? " selected" : "").">".$row["city"]."</option>";
}
?>
</select>
<label>Star</label>
<select name="star">
<option value="">--</option>
<?php
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." GROUP BY star ORDER BY star";
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysql_fetch_assoc($sql_result)) {
echo "<option value='".$row["star"]."'".($row["star"]==$_REQUEST["star"] ? " selected" : "").">".$row["star"]."</option>";
}
?>
</select>
<input type="submit" name="button" id="button" value="Filter" />
</label>
<button><a style="text-decoration:none;" href="search.php">reset</a></button>
</form>
<br /><br />
<table width="700" border="1" cellspacing="0" cellpadding="4">
<tr>
<td width="90" bgcolor="#CCCCCC"><strong>From date</strong></td>
<td width="95" bgcolor="#CCCCCC"><strong>To date</strong></td>
<td width="159" bgcolor="#CCCCCC"><strong>Hotel Name</strong></td>
<td width="191" bgcolor="#CCCCCC"><strong>Email</strong></td>
<td width="113" bgcolor="#CCCCCC"><strong>City</strong></td>
<td width="113" bgcolor="#CCCCCC"><strong>Star</strong></td>
<td width="113" bgcolor="#CCCCCC"><strong>Links</strong></td>
</tr>
<?php
if ($_REQUEST["string"]<>'') {
$search_string = " AND (hotel LIKE '%".mysql_real_escape_string($_REQUEST["string"])."%' OR email LIKE '%".mysql_real_escape_string($_REQUEST["string"])."%')"; 
}
if ($_REQUEST["city"]<>'') {
$search_city = " AND city='".mysql_real_escape_string($_REQUEST["city"])."'";   
}
if ($_REQUEST["star"]<>'') {
$search_star = " AND star='".mysql_real_escape_string($_REQUEST["star"])."'";   
}
if ($_REQUEST["links"]<>'') {
$search_links = " AND links='".mysql_real_escape_string($_REQUEST["links"])."'";    
}
if ($_REQUEST["from"]<>'' and $_REQUEST["to"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE from_date >= '".mysql_real_escape_string($_REQUEST["from"])."' AND to_date <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_string.$search_city.$search_string.$search_star.$search_string.$search_links;
} else if ($_REQUEST["from"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE from_date >= '".mysql_real_escape_string($_REQUEST["from"])."'".$search_string.$search_city.$    search_string.$search_star.$search_string.$search_links;
} else if ($_REQUEST["to"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE to_date <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_string.$search_city.$search_string.$search_star.$search_string.$search_links;
} else {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE id>0".$search_string.$search_city.$search_string.$search_star.$search_string.$search_links;
}

$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
if (mysql_num_rows($sql_result)>0) {
while ($row = mysql_fetch_assoc($sql_result)) {
?>
<tr>
<td><?php echo $row["from_date"]; ?></td>
<td><?php echo $row["to_date"]; ?></td>
<td><?php echo $row["hotel"]; ?></td>
<td><?php echo $row["email"]; ?></td>
<td><?php echo $row["city"]; ?></td>
<td><?php echo $row["star"]; ?></td>
<td><?php echo $row["links"]; ?></td>
</tr>
<?php
}
} else {
?>
<tr><td colspan="7">No results found.</td>
<?php   
}
?>
</table>
<script>
$(function() {
var dates = $( "#from, #to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 2,
dateFormat: 'yy-mm-dd',
onSelect: function( selectedDate ) {
var option = this.id == "from" ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
dates.not( this ).datepicker( "option", option, date );
}
});
});
</script>

</body>
</html>

【问题讨论】:

  • “search.php”从mysql数据库中获取数据并将数据显示在一个表中,还可以选择直接在表中搜索数据。
  • 暂时使用 mysqli_query、mysqli_num_rows 和 mysqli_fetch_assoc 代替 mysql_,并研究 PDO 和准备好的语句。
  • 感谢@ArjanShrestha 的帮助。我可以替换它,但我可能会犯一些错误,错误地替换另一个。有人可以为我替换它并将其粘贴到评论中吗?我会做到的,但我现在很好。非常感谢您的帮助,谢谢。

标签: php mysql pdo


【解决方案1】:

您需要学习使用 PDO 和准备好的语句。这是您编辑的代码,我只将您的 mysql_ 部分更改为 mysqli_。我希望你的 $sql 和 $connection 能完美运行

<?php
error_reporting(0);
include("config.php");
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MySQL table search</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<style>
BODY, TD {
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
</style>
</head>


<body>

<form id="form1" name="form1" method="post" action="search.php">
<label for="from">From</label>
<input name="from" type="text" id="from" size="10" value="<?php echo $_REQUEST["from"]; ?>" />
<label for="to">to</label>
<input name="to" type="text" id="to" size="10" value="<?php echo $_REQUEST["to"]; ?>"/>
<label>Hotels:</label>
<input type="text" name="string" id="string" value="<?php echo stripcslashes($_REQUEST["string"]); ?>" />
<label>City</label>
<select name="city">
<option value="">--</option>
<?php
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." GROUP BY city ORDER BY city";
$sql_result = mysql_query ($connection, $sql) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysqli_fetch_assoc($sql_result)) {
echo "<option value='".$row["city"]."'".($row["city"]==$_REQUEST["city"] ? " selected" : "").">".$row["city"]."</option>";
}
?>
</select>
<label>Star</label>
<select name="star">
<option value="">--</option>
<?php
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." GROUP BY star ORDER BY star";
$sql_result = mysqli_query ($connection, $sql) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysqli_fetch_assoc($sql_result)) {
echo "<option value='".$row["star"]."'".($row["star"]==$_REQUEST["star"] ? " selected" : "").">".$row["star"]."</option>";
}
?>
</select>
<input type="submit" name="button" id="button" value="Filter" />
</label>
<button><a style="text-decoration:none;" href="search.php">reset</a></button>
</form>
<br /><br />
<table width="700" border="1" cellspacing="0" cellpadding="4">
<tr>
<td width="90" bgcolor="#CCCCCC"><strong>From date</strong></td>
<td width="95" bgcolor="#CCCCCC"><strong>To date</strong></td>
<td width="159" bgcolor="#CCCCCC"><strong>Hotel Name</strong></td>
<td width="191" bgcolor="#CCCCCC"><strong>Email</strong></td>
<td width="113" bgcolor="#CCCCCC"><strong>City</strong></td>
<td width="113" bgcolor="#CCCCCC"><strong>Star</strong></td>
<td width="113" bgcolor="#CCCCCC"><strong>Links</strong></td>
</tr>
<?php
if ($_REQUEST["string"]<>'') {
$search_string = " AND (hotel LIKE '%".mysql_real_escape_string($_REQUEST["string"])."%' OR email LIKE '%".mysql_real_escape_string($_REQUEST["string"])."%')"; 
}
if ($_REQUEST["city"]<>'') {
$search_city = " AND city='".mysql_real_escape_string($_REQUEST["city"])."'";   
}
if ($_REQUEST["star"]<>'') {
$search_star = " AND star='".mysql_real_escape_string($_REQUEST["star"])."'";   
}
if ($_REQUEST["links"]<>'') {
$search_links = " AND links='".mysql_real_escape_string($_REQUEST["links"])."'";    
}
if ($_REQUEST["from"]<>'' and $_REQUEST["to"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE from_date >= '".mysql_real_escape_string($_REQUEST["from"])."' AND to_date <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_string.$search_city.$search_string.$search_star.$search_string.$search_links;
} else if ($_REQUEST["from"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE from_date >= '".mysql_real_escape_string($_REQUEST["from"])."'".$search_string.$search_city.$search_string.$search_star.$search_string.$search_links;
} else if ($_REQUEST["to"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE to_date <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_string.$search_city.$search_string.$search_star.$search_string.$search_links;
} else {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE id>0".$search_string.$search_city.$search_string.$search_star.$search_string.$search_links;
}

$sql_result = mysqli_query ($connection,$sql) or die ('request "Could not execute SQL query" '.$sql);
if (mysqli_num_rows($sql_result)>0) {
while ($row = mysqli_fetch_assoc($sql_result)) {
?>
<tr>
<td><?php echo $row["from_date"]; ?></td>
<td><?php echo $row["to_date"]; ?></td>
<td><?php echo $row["hotel"]; ?></td>
<td><?php echo $row["email"]; ?></td>
<td><?php echo $row["city"]; ?></td>
<td><?php echo $row["star"]; ?></td>
<td><?php echo $row["links"]; ?></td>
</tr>
<?php
}
} else {
?>
<tr><td colspan="7">No results found.</td>
<?php   
}
?>
</table>
<script>
$(function() {
var dates = $( "#from, #to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 2,
dateFormat: 'yy-mm-dd',
onSelect: function( selectedDate ) {
var option = this.id == "from" ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
dates.not( this ).datepicker( "option", option, date );
}
});
});
</script>

</body>
</html>

【讨论】:

  • 我试过了,但还是不行,表格和命令按钮是 PHP 甚至没有显示。请帮助大家,这篇文章可以帮助未来有需要的人。谢谢 有人可以编辑我的代码并纠正错误吗?
猜你喜欢
  • 2016-02-09
  • 2013-02-10
  • 2023-04-05
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 2015-10-05
相关资源
最近更新 更多