2

2000 以上の製品を含む製品説明のデータベース テーブルがあります。問題は、Web サイトから製品の説明を入力するときに 2 つの問題があることです。データベースは、すべての二重引用符または半引用符記号の隣に複数のバック スラッシュを生成します。製品を編集するたびに、バックスラッシュが 2 倍になります。たとえば、3〜4回の編集後は次のようになります。

それはとても...

それから何か....

それは\\\\\\とても...

等々...

手動で削除するには数日かかるため、データベースからそれらを一括削除するものが必要です。

また、2つ目の問題は

\r\n

すべての隣に生成される文字

< br > または < br /> タグ。

おそらく想像できると思いますが、これは私のデータベースを非常に混乱させ、製品の説明を台無しにしています. 私は何度もそれを解決しようとしており、調査などを行っていますが、理解できず、停止する方法もありません。

これらを削除して、これが起こらないようにするのを手伝ってくれる人はいますか?

助けていただければ幸いです。よろしく

4

1 に答える 1

2

それは興味深いです、あなたはあなたのMySQLにNO_BACKSLASH_ESCAPESモードを持っているようです。

2つの異なるSQLを使用すると、SQLFiddleでの作業を再現できます。

初め:

CREATE TABLE A
(
  Name varchar(64)
);

SET sql_mode = 'ANSI';

INSERT INTO A (Name) VALUES('aaa \n\r bbbb')

2番:

CREATE TABLE A
(
  Name varchar(64)
);

SET sql_mode = 'NO_BACKSLASH_ESCAPES';

INSERT INTO A (Name) VALUES('aaa \n\r bbbb')

私は証明のためにこのような単純な選択を実行します:

SELECT Name FROM A

結果:

最初のケース: aaa bbbb

2番目のケース: aaa \ n \ r bbbb

お役に立てば幸いです。

詳細については、plsはMySQL sqlモードを確認してください!

もちろん、既存の問題については、単純なREPLACE関数を使用できます。しかし、モードを適切に設定すれば、それは二度と起こりません!

于 2012-08-25T19:22:29.643 に答える