2012-01-23 13 views
0

%を含むcharを保存しようとしていますが、問題は '/または'のような他の文字はうまく動作しているようですが、私は多くのことを試しましたが、mysql_real_escape_stringやその他のものを使用しても動作しません。MySQLの%文字をエスケープする

現時点では%を '%'に置き換えています(バックスラッシュ+%では動作しませんでした)それをデータベースに保存してからエコーする前に元に戻しますが、実際には最適ではありません。もっと良い方法があれば教えてください。

+1

なぜあなたは '%'文字をエスケープしますか?このシンボルをデータベースに保存しようとすると何が格納されますか? –

+0

問題はそれがまったくそれを保存しないということです、それで私はそれをエスケープしなければならないと思いました。また、http://dev.mysql.com/doc/refman/5.0/en/string-literals.html – Andrew

+1

通常、 'LIKE'節の中でそれを使用し、リテラル'% 'にマッチさせたいときにエスケープします。 'sprintf'関数を使用して、挿入/更新クエリを作成していますか? –

答えて

1

変数を入れないでくださいプレースホルダと値のバインディングを使用する

1

PHPの場合は、addslashesを挿入する前にパーセント文字を使用する必要があります。 MySQLの その:挿入/更新をしながら

 

'10\% off' //you need to escape % character 
 
1

MySQLは、%文字は変更されません。あなたがそれに問題がある場合、それは変換を行っているあなたのセットアップのいくつかの他の層でなければなりません。

create table test (a varchar(10)); 
insert into test values ('abc%def'); 
select * from test; 

+---------+ 
| a  | 
+---------+ 
| abc%def | 
+---------+ 
1 row in set (0.00 sec) 
+0

OK、質問や他の何かで、問題は私が本当にmysqlについてよく知らないことです、これはコードpastebin.com/QGVQNHxSです – Andrew

0

はどうやら、%は非常に簡単str_replaceは私のためにそれをやったので、それが倍増することによってエスケープすることができます。

関連する問題