试图通过PHP搜索数据库
我编写了一些代码来搜索数据库中输入的任何内容,但是它只显示一个白色屏幕。我仍然不确定使用OO,所以可能是查询?我试过几种不同的方法,但都是白色屏幕。一定是很明显的东西,只是需要另一双眼睛 与数据库的连接工作正常,因此这不是问题,$POST值是正确的 Search.php 你有一个额外的},试试这个吧试图通过PHP搜索数据库,php,mysql,Php,Mysql,我编写了一些代码来搜索数据库中输入的任何内容,但是它只显示一个白色屏幕。我仍然不确定使用OO,所以可能是查询?我试过几种不同的方法,但都是白色屏幕。一定是很明显的东西,只是需要另一双眼睛 与数据库的连接工作正常,因此这不是问题,$POST值是正确的 Search.php 你有一个额外的},试试这个吧 <?php session_start(); include 'searchform.php' include 'pagetemplate.php'; if(isset($_POST['se
<?php
session_start();
include 'searchform.php'
include 'pagetemplate.php';
if(isset($_POST['searchsubmit']))
{
$name=$_POST['name'];
if ($stmt = $connection->prepare ("SELECT * FROM users WHERE FirstName LIKE ? OR LastName LIKE ? OR Username LIKE ?"))
{
$stmt->bind_param('sss', $name, $name, $name);
$stmt->execute();
$stmt->bind_result($personresult);
$stmt->fetch();
printf($personresult);
}
else
{
echo "<p>Please enter a search query</p>";
}
} else
echo "NOT SET!";
?>
可能有很多东西,但这里可能是进行搜索的理想方式。确保始终添加斜杠以防止SQL注入
$selectStmt = "SELECT * FROM users WHERE (FirstName LIKE '%".addslashes($_POST['searchquery']) ."%') OR (LastName LIKE '%".addslashes($_POST['searchquery']) ."%') OR (Username LIKE '%".addslashes($_POST['searchquery']) ."%')";
$result = mysql_query($selectStmt);
while($row = mysql_fetch_assoc($result)) print_r($row);
正如其他人提到的,while页面可能是语法错误,或者在关闭错误报告时出现其他错误。如果尚未启用,则启用错误报告
如果这仍然不起作用-回显上面的$selectStmt并尝试在phpMyAdmin中打印。MySQL将为您提供更有意义的更正
编辑:显然,我的方法有点过时了,尽管功能还不错。这里有一个使用MySQLi对象的替代版本。您还可以使用mysql\u real\u escape\u字符串代替$selectStmt中的addslashes,以获得更适合任务的内容
白色屏幕通常意味着语法错误将else{echo not set;}添加到ifisset$_POST['searchsubmit']{…}如果您看到这一点,您将知道接下来要做什么。另一个POST数组也是如此。或者。。。。[searchsubmit]未实际设置?所以跳过那个代码块?两个代码块都回显了,但仍然是白色屏幕,没有写入@AdamJeffers在表单中名为searchsubmit,值为Submit,所以我看不出它是如何不被设置的,如果你真的想输入百分比,否则它与=。干杯,伙计,尝试了这个,但与之前一样,只是返回了一个白色屏幕。我确信也是如此。尝试了各种方法来解决它,但得到了这个!拒绝显示任何错误toothis is mysql_uuop正在使用mysqli_uuu,您忘记了selectStmt的$。
$selectStmt = "SELECT * FROM users WHERE (FirstName LIKE '%".addslashes($_POST['searchquery']) ."%') OR (LastName LIKE '%".addslashes($_POST['searchquery']) ."%') OR (Username LIKE '%".addslashes($_POST['searchquery']) ."%')";
$result = mysql_query($selectStmt);
while($row = mysql_fetch_assoc($result)) print_r($row);
$dbConnection = new mysqli($host, $user, $password, $name);
if ($result = $dbConnection->query($selectStmt)) {
while($row = $result->fetch_assoc()) { print_r($row); }
}