Как я могу сохранить опцию select в базе данных с помощью PHP?
У меня ошибка говорит:
Error: INSERT INTO dbstation(From, To, Date) values('fAG', 'tkulim', '2018-09-30') You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'From, To, Date) values('fAG', 'tkulim', '2018-09-30')' at line 1
Можете ли вы помочь мне решить эту проблему? заранее спасибо.
Это мой html код:
<html> <head> <title>Main Menu</title> <link rel="stylesheet" type="text/css" href="menu_style.css"> <link rel="stylesheet" type="text/css" href="Datepicker.css"> </head> <body> <div class="menu"> <!-- <div class="btn"> --> <a href="main.html"><button class="btn">Booking</button></a> <a href="history.html"><button class="btn">History</button></a> <a href="reservation.html"><button class="btn">Reservation</button></a> <a href="trainpay.html"><button class="btn">TrainPay</button></a> <a href="reservation.html"><button class="btn">Update profile</button></a> <br><br><br> <!-- </div> --> <!-- <div class="station"> --> <form align="center" method="post" action="station.php"> From <select name="from"> <option value="fkluang">Kluang, Johor</option> <option value="fAG">Alor Gajah, Melaka</option> <option value="fSenawang">Senawang, NS</option> <option value="fKL">KL Sentral, KL</option> <option value="fipoh">Ipoh, Perak</option> <option value="fkulim">Kulim, Kedah</option> <option value="fkangar">Kangar, Perlis</option> </select> To <select name="to"> <option value="tkluang">Kluang, Johor</option> <option value="tAG">Alor Gajah, Melaka</option> <option value="tSenawang">Senawang, NS</option> <option value="tKL">KL Sentral, KL</option> <option value="tipoh">Ipoh, Perak</option> <option value="tkulim">Kulim, Kedah</option> <option value="tkangar">Kangar, Perlis</option> </select> <label>Date: </label> <input name="datee" type="date"/> <!-- Button to choose schedule --> <a href="schedule.html"><button align="right" class="button" name="go">go</button></a> </form> </div> <div class="tr"> <img id='train-route' src="train_route.jpg" alt="" width="900" height="450" /> </div> </body> </html>
Что я уже пробовал:
<?php $from = filter_input(INPUT_POST, 'from'); $to = filter_input(INPUT_POST, 'to'); $datee = filter_input(INPUT_POST, 'datee'); if (!empty($from)){ if (!empty($to)){ if (!empty($datee)){ $host = "localhost"; $dbusername = "root"; $dbpassword = ""; $dbname = "station"; // Create connection $conn = new mysqli ($host, $dbusername, $dbpassword, $dbname); if(mysqli_connect_error()) { die('Connect Error('.mysqli_connect_errno().')'.mysqli_connect_error()); } else { $sql = "INSERT INTO dbstation(From, To, Date) values('$from', '$to', '$datee')"; if($conn->query($sql)) { echo "New record is inserted successfully"; } else { echo "Error: ".$sql." ".$conn->error; } $conn->close(); } } else { // echo "Date should not be empty"; // die(); } } else{ // echo "Password should not be empty"; // die(); } } else{ // echo "Username should not be empty"; // die(); } ?>
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
PHP: SQL-инъекция - руководство пользователя[^]