私は単位を持つテーブルを持っています:
insert into table unit ('id', 'name') values ('1', 'mg'),
('2', 'km'), ('3', '%'), ('4', '%.'), ('5', 'mg/100%'), ('6', 'km/h');
ここで、名前に % が含まれるすべての単位を検索します (ここでは、%、%、および mg/100%):
select * from unit where name like '%\%%';
コンソールまたはphpmyadminからは正常に動作しますが、PDOで実行しようとすると
$st = $db->prepare('select * from unit where name like :n');
$st->execute(array('n'=>'%mg%'));
大丈夫ですが、
$st->execute(array('n'=>'%\%%'));
結果が出ない…
PDOの準備/実行で%文字をエスケープする方法は?