query()
基本的にであると呼ばれるメソッドを持つmysqlクラスがあり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は実際には="value'1"です。
次の例のように、値を区切り文字の間に置くというオプションもありますが、これは私にとって最善の方法ではないようです。
insert into table set field1 = {{value 1}}, field2 = {{value 2}}
次に、「{{」と「}}」の間のすべてのテキストをキャッチして、そのmysql_real_escape_string()
'ed値に置き換えます。
より専門的な方法でこれを行う方法はありますか?
ps:コード内に**が含まれていることをお詫びします、チェックマーク内を太字にする方法がわかりません