繁体   English   中英

PHP pg_prepare() 表名作为参数

[英]PHP pg_prepare() table name as parameter

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

我刚刚意识到参数只能在where子句中使用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'] ));

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM