0

データベースの値を置き換えるスクリプトがあります。

これを使用する場合:

$search[] = ("\\");

$sql[$handle]['sql'] = 'UPDATE '.$table.' SET '.$field.' = REPLACE('.$field.',\''.$search[$i].'\',\''.$replace[$i].'\')';

次のエラーが表示されます。SQL 構文にエラーがあります。1) 行目の ''\')' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

おそらくバックスラッシュをエスケープするだけの問題であることは理解していますが、すべてを試しました(二重引用符への変更、エスケープ、文字コードの使用、utf 8エンコード/デコードなど、まだ運がありません.

他の値がうまく機能することに注意してください ($search[] 値のリストがあります)。

4

2 に答える 2

2

"\\"文字列を作成するため\、プレーン SQL はREPLACE('...,\')であり、これはエラーです。使用する:

$search[] = ("\\\\");

mysql 文字列リテラルを見てください。

于 2012-09-12T13:29:15.297 に答える
0

これを使って:

$search[] = ("{\}");

それは\を検索します

また

$search[] = ("{\\}");

2つのバックスラッシュを検索したい場合....

于 2012-09-12T13:28:19.510 に答える