我收到以下代码段的语法错误:
$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.'\')';
}
我确信我刚刚忘记了一些小事,但我似乎无法找出导致错误的原因。
非常感谢任何帮助。
答案 0 :(得分:2)
您的语法错误来自您提供的代码段的第3行:该行的结尾',\''0', ''), '1', ''), '2', '')';
导致问题,因为应该是SQL语句的一部分的单引号不是逃过一劫。而不是转义所有这些,而不是简单地使用双引号来包含该部分,如下所示:",''0', ''), '1', ''), '2', '')";
此外,您当前的代码非常容易受到SQL注入的影响。