gpt4 book ai didi

PHP pg_prepare() 表名作为参数

转载 作者:行者123 更新时间:2023-11-29 12:19:05 25 4
gpt4 key购买 nike

我正在尝试将此查询从普通的 pg_query() 转换为 pg_prepare() & pg_execute()。它是一个通用查询,当我需要更新不同页面的不同表以保持代码整洁时,我会重复使用它。

我刚刚意识到参数只能用在 where 子句中,不能用在查询的其他部分。

$res = pg_query($con, "update " .  $_REQUEST['table'] . " set " . $_REQUEST['colname'] . "=" . $colval . " where " . $_REQUEST['colnameid'] . "=" . $_REQUEST['colvalid'] . " returning " . $_REQUEST['colnameid'] );

试过这段代码:

$res = pg_prepare($con, "upd", "update $1 set $2=$3 where $4=$5 returning $6");

$res = pg_execute($con, "upd", array($_REQUEST['table'],$_REQUEST['colname'],$colval,$_REQUEST['colnameid'],$_REQUEST['colvalid'],$_REQUEST['colnameid'] ));

这是失败的。有什么方法可以实现这个或更好的方法来解决这个问题吗?

最佳答案

不,您不能绑定(bind)标识符,只能绑定(bind)值。

标识符(表名、字段名等)一开始就不应该是用户输入的。以这种方式处理它们是一个非常糟糕的主意。

关于PHP pg_prepare() 表名作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36786502/

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