0

我收到以下代码片段的语法错误:

    $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.'\')';
    }

我确定我刚刚忘记了一些小东西,但我似乎无法找出导致错误的原因。

任何帮助将非常感激。

4

1 回答 1

2

您的语法错误来自您提供的代码段的第 3 行:该行的结尾 ,',\''0', ''), '1', ''), '2', '')';导致了问题,因为应该是您的 SQL 语句的一部分的单引号没有被转义。与其将它们全部转义,不如使用双引号来包含该部分要简单得多,如下所示:",''0', ''), '1', ''), '2', '')";

此外,您当前的代码很容易受到 SQL 注入的影响。

于 2012-09-10T16:09:13.267 回答