我正在尝试创建一个非常简单的数据库抽象,其中一部分使用准备好的查询.
现在,我有一个函数接受一个查询字符串和一个值数组,如下所示:
$query = "SELECT `first_name`, `last_name` FROM ::table_name WHERE `id` = :id"
$values = array(
'table_name' = $this->table_name,
'id' = $user_id,
);
这将创建一个这样的查询:
SELECT `first_name`, `last_name` FROM `sometablename` WHERE `id` = '1234'
我的问题是这样的:
我正在使用preg_replace_callback从查询字符串中获取:: identifiers和:identifier,然后将其发送到清理函数.问题是,我还需要发送values数组,以便函数可以从regexp获取匹配,使用该键获取values数组中的项,转义值,将其包装在右引号中然后返回.
但我无法将任何额外信息传递给回调.我可以使用私有静态变量,但这非常hacky.
另一种方法是什么?