查询会产生语法错误

时间:2015-03-01 15:53:21

标签: php mysql syntax-error

在PHP中运行此MySQL查询会产生我无法解决的语法错误。

function queryTest(array $dataArray)
    $query = "Insert into users (email,fullName,password, accessLevel) values (($dataArray['formEmail']),($dataArray['formFullName']),($dataArray['formPassword']),($dataArray['formAccessLevel']))";                                                   

    if( $this->mysqli->real_query($query)) == FALSE
    {
        throw new exception ("failed");
    }  
}

错误:

  

解析错误:语法错误,意外''(T_ENCAPSED_AND_WHITESPACE),       期待标识符(T_STRING)或变量(T_VARIABLE)或数字       第14行/home/comp3170-036/public_html/lab2/Registration.php中的(T_NUM_STRING)

3 个答案:

答案 0 :(得分:0)

你的INSERT查询似乎错了:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

答案 1 :(得分:0)

您的查询可能有错误,请检查您的上一个列名称。不允许直接允许空格:

$query = "Insert into users (email,fullName,password, access level)

答案 2 :(得分:0)

在提交到数据库之前,为了调试此类问题,echovardump $query的内容。这将显示正在提交给数据库的实际SQL文本。

看起来问题之一是值列表中的文字周围缺少单引号。看起来这个代码也容易受到 SQL注入的攻击。<​​/ p>

最佳做法是在SQL文本中包含数据值,而是使用预备语句绑定占位符。< / p>