【问题标题】:Is it Possible to Set the Column to be Updated via a Prepared Statement?是否可以通过准备好的语句设置要更新的列?
【发布时间】:2012-04-12 18:48:40
【问题描述】:

我正在尝试编写一个可以更改表中列的值的函数,其中表、列和值不是预先确定的。有没有可能做这样的事情:

UPDATE :tbl SET :column = :value;

要做到这一点,还是只能为值绑定参数?

编辑

或者这是完成此任务的唯一方法:

$query = "UPDATE".$tbl." SET ".$column." = ".$value.";";

【问题讨论】:

    标签: php mysql pdo mysqli prepared-statement


    【解决方案1】:

    参数只能绑定到值而不是表/列。

    【讨论】:

    • 这就是我认为除了我编辑的内容之外还有其他选择吗?
    【解决方案2】:

    这是不可能的。准备好的语句允许数据库优化特定查询的查询计划。如果它不知道什么表或列,它就不能创建查询计划。

    【讨论】:

    • 这就是我认为除了我编辑的内容之外还有其他选择吗?
    • 您可以像上面那样创建一个准备好的语句,然后在准备好的语句中仍然使用 :value 部分代替 $value 。但是,如果您这样做并且 $tbl 或 $column 值来自用户输入,则必须确保它们有效且正确转义。
    猜你喜欢
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多