SQL搜索查询不返回任何结果

时间:2016-05-15 05:07:42

标签: php mysql

我有三个页面search.php处理sql查询,index.php有自己的搜索表单,connect.php有数据库连接信息。我正在关注此视频中的信息 https://www.youtube.com/watch?v=gf32KXTP0C4

首先,我确保查询在phpMyAdmim中有效 query working in mysql我用了一个测试。如您所见,它返回117结果

以关键字作为名称的表单

<form action="search.php" method="get">
        <label>
            Search
            <input type="text" name="keywords" autocomplete="off">

        </label>

        <input type="submit" value="Search">

Search.php如下,它应该在表格字符中搜索输入到表单中的内容,根据它们回答结果的大小然后列出它们

<?php

require_once 'connect.php';

if(isset($_GET['keywords'])) {

     $keywords = $db->escape_string($_GET['keywords']);

     $query = $db->query("
        SELECT charactor_name, vault_number, history
        FROM charactor 
        WHERE charactor_name like '%{keywords}%'
     ");
     ?>

     <div class="result-count">
        Found <?php echo $query->num_rows; ?> results
     </div>


     <?php

     if($query->num_rows) {
         while($r = $query->fetch_object()) {
             ?>
             <div class="result">
             <a href="#"><?php echo $r->charactor_name; ?></a>
             </div>
             <?php


         }


     }

}

connect.php如下 我使用http://php.net/manual/en/mysqli.construct.php中的代码来测试if语句中的数据库连接,以确保connectoion正常工作。一旦我知道它正在工作,我就把它评论出来了

connection success

<?php 

$db = new mysqli('localhost', 'root', '', 'csc8417');
/*
if (mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Success... ' . $db->host_info . "\n";

$db->close();
?>*/

无论我运行什么查询,我总是得到0结果,如此处所示

tenpenny 它应该回来 tenpenny2

2 个答案:

答案 0 :(得分:3)

请点击这里:

 $query = $db->query("
    SELECT charactor_name, vault_number, history
    FROM charactor 
    WHERE charactor_name like '%{keywords}%'
 ");

关键字应为$ keywords

答案 1 :(得分:0)

试试这个吗?

if( $query->num_rows() ) { 

使用$query->num_rows()代替$query->num_rows