在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)
答案 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)
在提交到数据库之前,为了调试此类问题,echo
或vardump
$query
的内容。这将显示正在提交给数据库的实际SQL文本。
看起来问题之一是值列表中的文字周围缺少单引号。看起来这个代码也容易受到 SQL注入的攻击。</ p>
最佳做法是不在SQL文本中包含数据值,而是使用预备语句与绑定占位符。< / p>