2012-03-22 16 views
2

私はすべてエントリ全体にバックスラッシュを含む約1000のエントリを持っています。簡単な方法、またはすべてのエントリから特定の文字を削除できるスクリプトはありますか?MySQLデータから追加されたバックスラッシュを削除/非表示

+0

これはサーバー側の言語のPHPですか? –

+0

ええ、PHPを使用しています – Chris

+0

データベースから値を表示する場所stripslashes($ yourvalue)を試しましたか? –

答えて

6

あなたの仕事はすべきです。

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace

UPDATE table_name SET col=REPLACE(col, '\\', '') 

これは動作するはずです。 \を空の文字列に置き換える列を更新します。 \を逃れなければならないかどうかは、\\またはちょうど\を使って覚えていません。 SELECT col, REPLACE(col,'\\','') FROM table_nameを使用してクエリを実行する前に確認し、結果が期待どおりかどうかを確認してください。

2

magic_quotesが有効なため、引用符をエスケープするためにバックスラッシュがデータベースに追加されることがあります。あなたはそこからそれらを取り除くべきではありません。

stripslashes($ yourvalue)PHP関数を使用する必要があります。ここでは、ページのデータベースの値を表示しています。

あなたが追加することが、あなたのコントローラで
0

public function init() 
{  
     $this->view->setEscape('stripslashes'); 
} 

これは表示しながら、スラッシュをエスケープします。

挿入がDBへの中にスラッシュを削除したい場合は、使用することができます:

stripslashes($your_value) 

あなたがちょうどあなたがmAの電流データからスラッシュを削除する場合:

UPDATE table_name SET col=REPLACE(col, '\\', '') 
1

私は「ドン@エンリコの解決策についてコメントするには十分な評判を持っています(これは2歳の質問ですが、Googleの結果では高いですが)。さらに、where句を使用して、実際にバックスラッシュを含む結果に限定することもできます(実行前にチェックすると便利です)。

チェック:

SELECT col, REPLACE(col,'\\','') FROM table_name WHERE col LIKE '%\%' ESCAPE '|' 

実行します。escape句はlike節(ただしREPLACE()機能)でのエスケープ文字を設定するために使用されて

UPDATE table_name SET col=REPLACE(col,'\\','') WHERE col LIKE '%\%' ESCAPE '|'; 

。バックスラッシュで作業しているので、私たちが望むものを得るためにエスケープ文字を変更します。

ご使用の環境によっては、最初にset SQL_SAFE_UPDATES=0が必要な場合があります。

関連する問題