我正在尝试使用PHP和MySQL创建可搜索的数据库。我有一个名为mission.html
的文件,其中包含以下代码:
<html>
<body>
<form name="form1" method="post" action="mission1results.php" id="search">
<input name="search" type="text"/>
<input type="submit" name="submit" vaule="Search"/>
</form>
mission1results.php
<html>
<body>
<?php
include 'login.php';
$connection = mysqli_connect(
$db_hostname, $db_username,
$db_password, $db_database);
if(mysqli_connect_error()){
die("Database Connection Failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
?>
<?php
$q_cond = mysqli_real_escape_string($_GET['search']);
$query="SELECT * From Merchant Where MerchantName='".$q_cond."'";
$result=mysqli_query($connection,$query);
if ($result===false)
{
die("Database Query Failed!")
};
while ($row=mysqli_fetch_assoc($result)){
echo "MerchantName: ".$row["MerchantName"].",";
echo "<hr/>";
}
mysqli_free_result($result);
?>
<?php
mysqli_close($connection);
?>
</body>
</html>
当我点击提交并在搜索栏中输入任何内容时,不会显示任何内容。我没有收到错误,我没有得到结果,一切都是空白。谁能告诉我为什么会这样?
答案 0 :(得分:0)
您在mission1results.php中有语法错误
if ($result===false)
{
die("Database Query Failed!")
};
必须更改为:
if ($result===false)
{
die("Database Query Failed!");
}
答案 1 :(得分:0)
首先:mysqli_real_escape_string()
需要传递数据库连接,然后是表单,您在表单中使用POST方法并为查询获取GET。
参考手册:http://php.net/manual/en/mysqli.real-escape-string.php
$q_cond = mysqli_real_escape_string($connection,$_POST['search']);
另外,改变
if ($result===false)
{
die("Database Query Failed!")
};
到
if ($result===false)
{
die("Database Query Failed!");
}
您还有语法错误vaule="Search"
将其更改为value
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告应仅在暂存时完成,而不是生产。
同时or die(mysqli_error($connection))
到mysqli_query()
找到任何可能的错误。
答案 2 :(得分:0)
相反$_GET['search']
使用$_POST['search']
,因为您的提交表单方法为post
。
mysqli_real_escape_string
个参数之一应该是数据库连接。
HTML中的语法错误,例如vaule="Search"
语法错误,例如,在;
}
之后不得if
醇>
答案 3 :(得分:0)
如果您收到前面答案中指出的错误的空白屏幕,您可能需要查看系统http://php.net/manual/en/function.error-reporting.php上的PHP error_reporting级别。您应该在开发服务器上看到PHP错误,我想报告PHP错误,警告和通知。
此外,您是否希望用户输入确切的搜索字词?您可能需要考虑以下内容:
$query="SELECT * From `Merchant` Where `MerchantName` like '%".$q_cond."%'";