<?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没有显示, 我一直在寻找类似的帖子,但没有什么是我的问题。
答案 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