我有一个 mysql 类,它有一个名为的方法query()
,基本上是mysql_query()
. 此方法接收查询作为参数,如下所示:
insert into table set field1 = 'value 1', field2 = 'value 2'
或者
select id from table where field1 = 'value 1', field2 like '%value 2%'
当然,这不是一个很好的做法,因为所有值都应该首先通过mysql_real_escape_string()
.
我想使用正则表达式来捕获将某些信息传递给方法的所有模式,例如粗体部分:
insert into table set field1 = '**value 1**', field2 = '**value 2**'
.
问题是,如果我让 preg_replace 变得贪婪,它最终会抓住:
insert into table set field1 = '**value 1', field2 = 'value 2**'
如果它不贪婪,它会抓住:
insert into table set field1 = '**value **' 1', field2 = 'value 2'
(其中filed1实际上是=“值'1”。
一个选项是将值放在分隔符之间,如下例所示,但这对我来说似乎不是最好的方法:
insert into table set field1 = {{value 1}}, field2 = {{value 2}}
然后捕获 "{{" 和 "}}" 之间的所有文本并将其替换为其mysql_real_escape_string()
'ed 值。
有没有办法以更专业的方式做到这一点?
ps:抱歉代码中有**,我不知道如何在刻度内加粗