2011-07-18 15 views
0

私はPHPでmysqlを使用しています。アポストロフィの値をデータベースに挿入する際に問題があります。アポストロフィの問題

$newstring = str_replace("'","'",$string); 

OR

$newstring = str_replace("'","''",$string); 

それがあるとして、どのように私は、文字列を取得する可能性が - しかし、私はでしょうか?

ありがとうございました。

+1

を、それを逃れることをサニタイズするaddslashes()を使用するか、またはする必要があります。あなたは '文字列をそのまま'取り出すことを明確にできますか? – switz

+0

可能な重複:[アポストロフィをどのようにエンコードして、mysqlで検索可能にするのですか?](http://stackoverflow.com/questions/620783/how-do-you-encode-an-apostrophe-so-that-its-検索可能なmysql); [PHPのアポストロフィとクエリ文字列。](0120-13753) – hakre

+0

@ user820561:問題の次に、実際に文字列を格納する必要がありますそれを変更せずにデータベースに保存したい場合)、おそらくSQLインジェクションに直面しています。あなた自身の 'str_replace'を使うのではなく、' mysql_real_escape_string'関数を使って文字列を変更せずにデータベースに格納することができます。それが何のために作られたのです。そして、SQLインジェクションを防ぐのに役立ちます。 – hakre

答えて

2

私はあなたの質問で混乱している、いっそmysql_real_escape_string()

4

使用mysql_real_escape_string

mysql_real_escape_string($string) 
+0

あなたの誓いに感謝します。私はそれを使用しましたが、テーブルに挿入する際には値を-abcd \のように挿入します。そのため、文字列を取得する際にはabcd \のようになります。どうすればこれを避けることができますか? – SandyK

+0

@user:取り出し中に 'stripslashes'関数を使ってください:) – Sarfraz

関連する問題