【发布时间】:2014-12-07 06:47:32
【问题描述】:
下面是 HTML 表单,它从用户那里获取输入主题和初学者(是,否)并将其插入数据库
<form action="coursesignup.php" method="post">
Select Subject:<br>
<select name="subject">
<option value="select" selected>select</option>
<option value="Database Management Systems">Database Management Systems</option>
<option value="Advanced Microprocessors">Advanced Microprocessors</option> </select><br><br>
Are you a Beginner:<br>
<select name="beginner">
<option value="select" selected>select</option>
<option value="yes">yes</option>
<option value="no">No</option></select><br><br>
<input type="submit" value="Submit" /></form>
Form 将数据提交到以下 php 文件中。 但是,它不是在相应的用户 ID 处插入值,而是将它们放在表的末尾
<?php
session_start();
if($_SESSION["username"])
$_POST["username"]=$_SESSION["username"];
$user=$_POST["username"];
// Check connection
$con=mysqli_connect("localhost","root","","elearning");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$subject = mysqli_real_escape_string($con, $_POST['subject']);
$beginner= mysqli_real_escape_string($con, $_POST['beginner']);
$sql=" UPDATE student_info SET subject=$subject AND beginner=$beginner
WHERE username=$user " ;
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "Successfuly entered";
mysqli_close($con);
?>
它给出以下错误:
错误: Erreur de syntaxe près de 'Management Systems AND ;beginner=yes WHERE username=gk4316' à la ligne 1
【问题讨论】:
-
正如错误消息所说,在 AND in 之后的查询中似乎有一个额外的(不必要的)分号:Management Systems AND ; begin=yes WHERE username= gk4316 ,您还需要将用户名值用引号括起来
-
@Ormoz 这就是 SQL 产生的错误,而不是查询本身。 OP 的 SQL 是法语的,我可以理解这种语言。
标签: php mysql sql-update