拜托,您可以帮我修复代码,以便我的SQL语句能够正常工作。我收到了这个错误:
无法更新数据:SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在“INSERT INTO
student
(UoB Number
,First Name
,Last Name
,”提案“附近使用正确的语法1
我的代码如下:
if (isset($_POST['submit'])) {
$database = mysqli_connect("localhost", "root", "", "university"); //connection to database
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: ";
}
$uob_number = mysqli_real_escape_string($database, $_POST['uob_number']);
$first_name = mysqli_real_escape_string($database, $_POST['first_name']);
$last_name = mysqli_real_escape_string($database, $_POST['last_name']);
$proposal = mysqli_real_escape_string($database, $_POST['proposal']);
$qualification_normal = mysqli_real_escape_string($database, $_POST['qualification_normal']);
$qualification_masters = mysqli_real_escape_string($database, $_POST['qualification_masters']);
$faculty = mysqli_real_escape_string($database, $_POST['faculty']);
$sql = "INSERT INTO `student`(`UoB Number`, `First Name`, `Last Name`, `Proposal`, `Qualification_Normal`, `Qualification_Masters`, `Faculty`) VALUES ([$uob_number],[$first_name],[$last_name],[$proposal],[$qualification_normal],[$qualification_masters],[$faculty])";
$retval = mysqli_query($database,$sql);
if (!$retval) {
die('Could not update data: ' . mysqli_error($database));
}
echo "Updated data successfully\n";
mysqli_close($database); //closes connection
}
答案 0 :(得分:1)
您的查询中存在大量语法错误:
$sql = "INSERT [..snip...] VALUES ([$uob_number],[$first_name],[$last_name],[$proposal],[$qualification_normal],[$qualification_masters],[$faculty])";
^-----------^
MySQL不使用[]
来分隔值。它使用'
。
答案 1 :(得分:0)
<强>问题:强>
您将$ _POST变量(使用方括号)的数组索引与您为存储转义数据而创建的新PHP变量混淆。
<强>解决方案:强>
更改以下行:
$sql = "INSERT INTO `student`(`UoB Number`, `First Name`, `Last Name`, `Proposal`, `Qualification_Normal`, `Qualification_Masters`, `Faculty`)
VALUES ([$uob_number],[$first_name],[$last_name],[$proposal],[$qualification_normal],[$qualification_masters],[$faculty])";
到
$sql = "INSERT INTO `student`(`UoB Number`, `First Name`, `Last Name`, `Proposal`, `Qualification_Normal`, `Qualification_Masters`, `Faculty`)
VALUES ('$uob_number','$first_name','$last_name','$proposal','$qualification_normal','$qualification_masters','$faculty')";
请注意,VALUES子句中的括号已被删除,并替换为单引号。