以下代码片段出现语法错误:
$handle = $table.'_'.$field;
if($queryType=='replace') {
$sql[$handle]['sql'] = 'UPDATE '.$table.' SET '.$field.' = replace(replace(replace('.$field.','''0', ''), '1', ''), '2', '')';
} else {
$sql[$handle]['sql'] = 'SELECT * FROM '.$table.' WHERE '.$field.' REGEXP('''.$search.''')';
}
我确信我只是忘记了一些小东西,但我似乎找不出是什么导致了这个错误。
任何帮助都将不胜感激。
您的语法错误来自您提供的代码段的第3行:该行的末尾','''0', ''), '1', ''), '2', '')';
导致了问题,因为本应是SQL语句一部分的单引号没有转义。与其全部转义,不如使用双引号来包含该部分,如下所示:",''0', ''), '1', ''), '2', '')";
此外,您当前的代码非常容易受到SQL注入的影响。