替换语句中的反斜杠 - 语法错误

时间:2012-09-12 13:26:44

标签: php mysql

我有一个脚本可以让我替换数据库中的值。

当我使用它时:

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

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

我收到以下错误:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行'''附近使用正确的语法)

我理解它可能只是一个逃避反斜杠的问题,但我尝试了一切(改为双引号,转义,使用字符代码,utf 8编码/解码等,但仍然没有运气。

请注意,其他值运行良好(我有一个$ search []值列表)

2 个答案:

答案 0 :(得分:2)

因为"\\"创建字符串\,因此普通SQL为REPLACE('...,\'),这是一个错误。使用:

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

看看mysql string literals

答案 1 :(得分:0)

使用它:

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

那将搜索\

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

如果你想搜索2个反斜杠......