Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图通过PHP搜索数据库_Php_Mysql - Fatal编程技术网

试图通过PHP搜索数据库

试图通过PHP搜索数据库,php,mysql,Php,Mysql,我编写了一些代码来搜索数据库中输入的任何内容,但是它只显示一个白色屏幕。我仍然不确定使用OO,所以可能是查询?我试过几种不同的方法,但都是白色屏幕。一定是很明显的东西,只是需要另一双眼睛 与数据库的连接工作正常,因此这不是问题,$POST值是正确的 Search.php 你有一个额外的},试试这个吧 <?php session_start(); include 'searchform.php' include 'pagetemplate.php'; if(isset($_POST['se

我编写了一些代码来搜索数据库中输入的任何内容,但是它只显示一个白色屏幕。我仍然不确定使用OO,所以可能是查询?我试过几种不同的方法,但都是白色屏幕。一定是很明显的东西,只是需要另一双眼睛

与数据库的连接工作正常,因此这不是问题,$POST值是正确的

Search.php

你有一个额外的},试试这个吧

<?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);  }
}