PHP搜索函数-错误的结果


PHP search function - erroneous results

我试图在php中创建一个简单的搜索函数,用户在文本框中插入他的搜索查询:

<form action="inc/search.inc.php" method="post">
            <input id="searchbox" name="search" class="search" type="text"></input>
            </form>

我的search.inc.page将用户重定向到带有以下查询的URL:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST"
        && !empty($_POST["search"]))
{
        $searchquery=$_POST["search"];
        header("Location: ../search.php?qr=".$searchquery);
}
?>

我的search.php调用函数retrieveSearch:

<?php 
include_once 'inc/functions.inc.php';
include_once 'inc/db.inc.php';
$db2 = new PDO(DB_INFO, DB_USER, DB_PASS);
$qr = (isset($_GET["qr"])) ? (string) $_GET["qr"] : NULL;
$e2 = retrieveSearch($db2, $qr);
$qresult = array_pop($e2);
echo $qresult;
 foreach ($e2 as $row)
 {
     echo $row["title"]."<br/>  ";
 }
?>

retrieveSearch函数:

function retrieveSearch($db2, $qr=NULL)
{
    $sql2 = "SELECT id, title, resume, search
            FROM blog
            WHERE search LIKE ?";
    $stmt2 = $db2->prepare($sql2);
    $stmt2->execute(array($_GET["qr"]));
    $e2 = $stmt2->fetch();
    array_push($e2, $qr);
    return $e2;
}

不幸的是,这给我返回了一些奇怪的结果,例如,如果我搜索"fff"(我的"搜索"条目之一),我会得到以下结果:

fff3
3
f
f
<
<
f
f

"fff"前面的3是id,我不知道它来自哪里,其他字符似乎是每列的第一个字母/符号。。。尽管我特别说过我只想显示"标题"栏。

查看PDOStatement的文档::fetch

结果是:只获取第一行结果,然后对其列进行迭代title字符串然后被转换为int(计算为零),结果是每列的第一个字符。