我需要将学生插入我的数据库。
学生表有3个字段。 id_Students
,Student_firstname
和Student_surname
我希望用户将数据插入到表单中,按下提交按钮,然后将数据添加到数据库中,但我没有太多运气。
这是我到目前为止所做的:
表格:
<form method="POST">
First name: <input type="text" name="firstname"><br>
Surname: <input type="text" name="surname">
<input type="submit" name="action"></button>
</form>
添加学生的功能:
function addStudent()
{
$data = "INSERT INTO Students (Student_firstname, Student_surname)
VALUES('$_POST['firstname']', '$_POST['surname']')";
if(!$data)
{
die("Invalid Query: " . mysql_error());
}
}
if( isset($_POST['action']))
{
addStudent();
}
我的第一个想法是我没有要求用户输入学生ID号,但是这被设置为自动递增,这使我认为我可以添加其他2个字段并且id将自动填写。
此外,我没有收到我的错误消息,数据根本没有放入表中。
答案 0 :(得分:1)
- 您需要执行查询 - 您的查询不正确
尝试这样:
function addStudent()
{
$data = "INSERT INTO Students (Student_firstname, Student_surname)
VALUES('".$_POST['firstname']."', '".$_POST['surname']."')";
$mysqli = new mysqli("host", "my_user", "my_password", "db_name");
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
if(!$mysqli->query($data))
{
die("Invalid Query: " . $mysqli->error());
}
}
答案 1 :(得分:1)
您应该使用预准备语句,以便可以与恶意用户对抗SQL注入,并使用条件语句来评估我们的插入是否成功。
function addStudent(){
$mysqli = new mysqli('host', 'user', 'password', 'database');
$stmt = $mysqli->prepare('INSERT INTO Students (Student_firstname, Student_surname) VALUES(?, ?)');
$stmt->bind_param('ss', $_POST['firstname'], $_POST['surname']);
if($stmt->execute()):
echo 'We have successfully added this student.';
else:
exit('execute() failed: ' . $stmt->error);
endif;
$stmt->close();
}
答案 2 :(得分:0)
您必须使用mysql_query
$sql = "INSERT INTO Students (Student_firstname, Student_surname)
VALUES('$_POST['firstname']', '$_POST['surname']')";
$result=mysql_query($sql);
使用mysqli
比使用mysql
更好,因为它已被弃用。您可能还需要阅读一些关于SQL injection
答案 3 :(得分:0)
下面的第一件事是不正确的
$ data =“INSERT INTO学生(Student_firstname,Student_surname) VALUES('$ _ POST ['firstname']','$ _POST ['surname']')“;
应该是
$ data =“INSERT INTO学生(Student_firstname,Student_surname) VALUES('“。$ $ POST ['firstname']。”','“。$ _ POST ['surname']。”')“;
第二件事
你没有执行你需要使用的查询mysql_query()在这里学习http://in2.php.net/mysql_query
答案 4 :(得分:0)
您尚未执行查询。之后
$data = "INSERT INTO Students (Student_firstname, Student_surname)
VALUES('$_POST['firstname']', '$_POST['surname']')";
您应该按
执行SQL查询 $exec = mysql_query( $data, $con );
其中$data
是您的查询&amp; $con
正在建立mysql连接。