gpt4 book ai didi

php - PDO 中的 "SELECT :parameter FROM .."

转载 作者:行者123 更新时间:2023-11-29 07:52:16 25 4
gpt4 key购买 nike

我试图在表中选择一个变量列名称,但这似乎不起作用:

$reponse = $bdd->prepare('SELECT :day AS day FROM TABLE WHERE id= :id');               
$reponse->execute(array('day' => 'monday', 'id' => '5'));
$day = $reponse->fetch();

即使将“日”设置为我的表中的某个已知元素(星期一),它也不起作用。 id 相同。

有人知道如何解决这个问题吗?

我没有 php 错误输出,只有 mysql 查询错误(没有显示)。通过将 ':day' 替换为星期一,我得到了一个输出。

最佳答案

由于 SQL 的解析顺序,根本无法使用绑定(bind)参数作为 SQL 语句的一部分(例如,列名或表名)。

相反,您需要使用字符串连接来构建字符串。如果 :day 的值来自外部源(数据库、POST 参数等),为了避免可能的 SQL 注入(inject)攻击,您需要验证输入以确保它是有效的列或表达式.

关于php - PDO 中的 "SELECT :parameter FROM ..",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26109768/

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