Ошибка при вставке данных в базу данных из 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-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]