存在数据库条目,但search_result返回false

时间:2018-01-29 11:04:42

标签: php

<?php
require 'database.php';

//if (!empty($_POST['search'])):

$sql1 = "SELECT * FROM cookies2 WHERE  cookie LIKE '%".$_POST['search']."%'";

$request1 = $conn->prepare($sql1);
$request1->bindparam(':search', $_POST['search']);

$request1->execute();
$result1 = $request1->fetch(PDO::FETCH_ASSOC);
var_dump($request1);
$ff = $result1['cookie'];
//endif;
?>
<html>


<meta charset="utf-8" /> 
<body>


<form action="comments.php" method="post"/>
<input type="text" name="search" placeholder="search for user comments"/>
<input type="submit"/>

    <?php
    if(!empty($request1)):
    while($search_result = $request1->fetch(PDO::FETCH_ASSOC)){ 
    var_dump($search_result);?>

    <h1>baaaaaa</h1>
    <p><?= $search_result['cookie']?></p>
    <h3><?= $search_result['comment']?></h3><?php }


 endif;
?>



</body>
</html>

所以我正在为我的cookie应用程序编写脚本。 这个脚本在另一个page.php中运行得很好 搜索cookie 但我被困2天,循环不会开始 search_result大部分时间都返回false。 我的bindparam错了还是我错过了一些基本的缩进? 我想让这个表用于用户对特定cookie的评论。 搜索。 我写这篇文章有可能被禁止我的最后一个问题。 我喜欢堆栈溢出但我认为它不适合初学者。 欢迎所有反馈,我不知道有什么问题 当几乎同意的脚本在此之前工作。 问候。别

ps baaaa有时会出现并且循环不会显示,即使我有 即表中的bak没有显示, 我一直在寻找类似的帖子,但没有什么是我的问题。

2 个答案:

答案 0 :(得分:1)

您只能在预准备语句中绑定到占位符;你没有占位符

所以创建没有引号的占位符,因为绑定会干净利落地处理它。

$sql1 = "SELECT * FROM cookies2 WHERE  cookie LIKE :search";

然后在绑定之前将搜索参数包装在通配符中

$request1->bindparam(':search', '%' . $_POST['search'] . '%');

答案 1 :(得分:0)

更改您的查询语句:

$sql1 = "SELECT * FROM cookies2 WHERE  cookie LIKE :search"; // Changed line no.1

$request1 = $conn->prepare($sql1);
$request1->bindparam(':search', "%".$_POST['search']."%", PDO::PARAM_STR); // Changed line no.2

$request1->execute();
$result1 = $request1->fetch(PDO::FETCH_ASSOC);
var_dump($request1);

有关详情:See