我有错误
错误:您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在'',总付款,快递,状态)使用价值(dgdgd,' qqqqq',& #39;'第1行
这是我的代码
$con=mysqli_connect("localhost","h116660_control","binersimteam3","h116660_mydb");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to database: " . mysqli_connect_error();
}
$sql="INSERT INTO order_list (username,name,address,city,province,zipcode,phone,productname,productprice,`to`,totalpayment,couriers,status)
VALUES
('$_POST[username]'
,'$_POST[name]'
,'$_POST[address]'
,'$_POST[city]'
,'$_POST[province]'
,'$_POST[zipcode]'
,'$_POST[phone]'
,'$_POST[productname]'
,'$_POST[productprice]'
,'$_POST[to]'
,'$totalpayment'
,'$_POST[couriers]'
,PENDING'
)";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
我已经尝试过对MySQL保留字('到')的反对,但错误又来了。 我该怎么办?
答案 0 :(得分:1)
从中删除''
并将查询中的所有字段名称替换为backtics:
$sql="INSERT INTO order_list (`username`,`name`,`address`,`city`,`province`,`zipcode`,`phone`,`productname`,`productprice`,`to`,`totalpayment`,`couriers`,`status`)
VALUES
('$_POST[username]'
,'$_POST[name]'
,'$_POST[address]'
,'$_POST[city]'
,'$_POST[province]'
,'$_POST[zipcode]'
,'$_POST[phone]'
,'$_POST[productname]'
,'$_POST[productprice]'
,'$_POST[to]'
,'$totalpayment'
,'$_POST[couriers]'
,PENDING'
)";
重要提示:根据Halfer的评论,不要直接在SQL查询中使用$_POST
,否则会增加sql注入的几率。
答案 1 :(得分:1)
删除字段'到' 的单引号,并在所有字段中添加``并执行或只删除字段&#39的单引号;到' 并执行
答案 2 :(得分:0)
无需向字段to
添加引号。如果需要,你必须添加`而不是'。并且还缺少PENDING的开场报价。将您的查询更改为
$sql="INSERT INTO order_list (username,name,address,city,province,zipcode,phone,productname,productprice,to,totalpayment,couriers,status)
VALUES
('$_POST[username]'
,'$_POST[name]'
,'$_POST[address]'
,'$_POST[city]'
,'$_POST[province]'
,'$_POST[zipcode]'
,'$_POST[phone]'
,'$_POST[productname]'
,'$_POST[productprice]'
,'$_POST[to]'
,'$totalpayment'
,'$_POST[couriers]'
,'PENDING'
)";