Alexis Cacayuran Ответов: 1

Ошибка при вставке данных в базу данных из HTML-формы


Ошибка: вставить в 'student' ('student_num', 'last_name', 'first_name', 'middle_init') значения ('2018-03829', 'Cacayuran', 'Alexis', 'A')
У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом со значениями "student" ('student_num',' last_name',' first_name', 'middle_init') (...' в строке 1

Что я уже пробовал:

PHP-код
<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "program_checklist";
$conn = mysqli_connect($servername, $username, $password, $dbname);

if ($conn->connect_error){
	die("Connection failed: ".$conn->connect_error);
}
echo "Connected succesfully<br>";

$a = $_POST['studentnum'];
$b = $_POST['lastname'];
$c = $_POST['firstname'];
$d = $_POST['middleinit'];

$insertsql = 
"INSERT INTO 'student' ('student_num', 'last_name', 'first_name', 'middle_init')
VALUES ('$a', '$b', '$c', '$d')";

if ($conn->query($insertsql) === TRUE){
	echo "New record created succesfully";
}else{
	echo "Error: ".$insertsql."<br>".$conn->error;
}

$conn->close();
?>


HTML-код

<!DOCTYPE html>
<html>
<head>
	<title>Student Checklist</title>
</head>
<body>
	<form action="submit.php" method="post">
		Student Number:<br>
		<input type="text" name="studentnum"><br>

		Last Name:<br>
		<input type="text" name="lastname"><br>

		First Name:<br>
		<input type="text" name="firstname"><br>

		Middle Initial:<br>
		<input type="text" name="middleinit"><br><br>

		<input type="submit" value="Submit">
	</form>

</body>
</html>

Richard MacCutchan

Попробуйте обойтись без кавычек в названиях таблиц и столбцов:

$insertsql = 
"INSERT INTO student (student_num, last_name, first_name, middle_init)
VALUES ('$a', '$b', '$c', '$d')";

Richard Deeming

Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк / интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]

1 Ответов

Рейтинг:
2

Patrice T

Цитата:
У вас есть ошибка в синтаксисе SQL

Обратите внимание на использование обратных меток (`)в sql-запросах, очень похожих на кавычки ('), но отличающихся.
Как использовать обратные метки и кавычки при запросе базы данных MySQL[^]