gpt4 book ai didi

php - 如何使用 PDO 和 php 正确获取对象

转载 作者:行者123 更新时间:2023-11-29 22:41:21 24 4
gpt4 key购买 nike

我在我的网站中实现了一个搜索框,它运行得很好,直到我决定防止 SQL 注入(inject)。我决定使用 PDO,因为很多人建议它比使用 mysql_string_escape 更好。当我尝试从数据库中获取数据时,它没有返回任何内容,但我知道其中有记录。

我的代码

db.php

    $mysqli = new mysqli("localhost","root", "", "1000_AD");

结果.php

         <?php

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

$search_query = $_GET['user_query'];

$get_foo = $mysqli->prepare("SELECT * FROM `food` WHERE `food_keywords`
LIKE ?");

$search_query = "%".$search_query."%";

$get_foo->bind_param('s',$search_query);


$get_foo->execute();

$obj = $get_foo->fetch();

if($obj==0){

echo "<h4>No results where found!</h4>";

}

//fetch results set as object and output HTML
while($list = $get_foo->fetch())
{
$foo_id = $list['food_id'];

echo '<div class="food">';
echo '<form method="post" action="basket.php" id = "add-basket-form"
>';
echo '<h4>'.$list['food_title'].'</h4>';
echo '<div class="pic"><img src="admin/food_images/'.$list['food_image'].'"
width= "180" height= "160"></div>';
echo "<p><b>£".$list['food_price']."</b></p>";
echo '<div class="sp-quantity">
<div class="sp-minus fff"> <a class="ddd">-</a>
</div><div class="sp-input"> <input type="text" name= "product_qty" class
="quntity-input" value="1" /></div>
<div class="sp-plus fff"> <a class="ddd">+</a> </div></div>';
echo '<div class = "btn"><a href="info.php?foo_id='.$list['food_id'].'"
style="float:left">INFO</a></div>';
echo '<div class = "add_b"><button>Add to Basket</button></div>';
echo '<input type="hidden" name="food_code"
value="'.$list['food_id'].'" />';
echo '<input type="hidden" name="type" value="add" />';
echo '</form>';
echo '</div>';
}
}

?>

它成功获取了行数,因为它两次回显按钮以显示找到的两条记录,这是正确的。问题是..它没有从数据库中获取标题、图像或价格。我尝试了很多建议,例如

           while($list = $get_foo->fetchAll(PDO::FETCH_ASSOC))

我收到错误 undefined method fetch all,我发现您需要安装驱动程序才能使 fetchAll 工作。我不想这样做。如何正确从数据库中获取数据?

最佳答案

在此示例中,您没有使用 PDO 连接到数据库,因此您尝试在查询中接收的数据无效

 while($list = $get_foo->fetchAll(PDO::FETCH_ASSOC))

学习如何使用 PDO 连接、检索和插入数据(以及准备语句(防止 SQL 注入(inject)的功能))的最佳位置是:

How can I properly use a PDO object for a parameterized SELECT query

http://php.net/manual/en/book.pdo.php

关于php - 如何使用 PDO 和 php 正确获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29329474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com