我有一个命令类,它抽象了几乎所有特定的数据库函数(我们在 Mssql 2005(使用 ODBC 和本机 mssql 库)、MySQL 和 Oracle 上运行完全相同的应用程序。但有时我们的 prepare 方法会出现一些问题,当执行,用它们各自的值替换所有占位符.但问题是我正在使用以下内容:
if(is_array($Parameter['Value']))
{
$Statement = str_ireplace(':'.$Name, implode(', ', $this->Adapter->QuoteValue($Parameter['Value'])), $Statement);
}
else
{
$Statement = str_ireplace(':'.$Name, $this->Adapter->QuoteValue($Parameter['Value']), $Statement);
}
当我们有两个或更多相似的参数名称时,就会出现问题,例如 session_browser 和 session_browse_version... 第一个将部分替换最后一个。
当然,我们学会了以特定顺序指定参数,但现在我有一些“空闲”时间,我想让它变得更好,所以我正在考虑切换到 preg_replace ......而且我不擅长正则表达式,任何人都可以用正则表达式提供任何帮助来替换像':parameter_name'这样的字符串吗?
最好的问候,布鲁诺 BB Magalhaes