gpt4 book ai didi

php - 尝试回应准备好的声明

转载 作者:行者123 更新时间:2023-11-29 13:07:51 27 4
gpt4 key购买 nike

我正在尝试从 mySQL(大约时间?)转到 PDO - 但我在理解应该如何编写事物时遇到了困难。我希望免受注入(inject),但我就是不知道如何正确地做到这一点。这看起来很令人困惑。这可能是因为我做得完全错误?

一直在寻找有关制作教程的各个方面的帮助,但是:(

有人可以帮助我吗?解释/表现得像我五岁一样?

<?php
$col_playername = "playername";
$tbl_playerdata = "player_data";
$post_search = "$_POST[search]";

$sth = $dbh->prepare("SELECT :col_playername FROM :tbl_playerdata
WHERE :col_playername LIKE %:post_search%
LIMIT 5");

$sth->bindParam(":col_playername", $col_playername);
$sth->bindParam(":tbl_playerdata", $tbl_playerdata);
$sth->bindParam(":post_search", $post_search);

$sth->execute();

foreach ($sth as $row)
{
?>
<div id="search_show">
<a href="?target=<?php echo $row["playername"]; ?>"><?php echo $row["playername"]; ?></a>
</div>
<?php
}
?>

截至目前 - 还没有任何结果。如果这是绝对错误的,我不会感到惊讶。

最佳答案

$statement->execute() 将执行,但不会获取您的行。

您需要添加 $statement->fetch() 来获取一个结果集,或者添加 $statement->fetchAll 来获取数组:

$sth->execute();

$rows = $sth->fetchAll();

foreach ($rows as $row)
{
//do stuff
}

注意:由于您将结果作为关联数组处理,因此您应该在准备任何内容之前执行此操作。它将使您无需为每个 fetch() 指定获取模式。

$dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

关于php - 尝试回应准备好的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468989/

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