PHP insert dữ liệu vào MySQL thông qua form
- Bài trước đã hướng dẫn cách thêm dữ liệu bằng câu lệnh MySQL, bài này sẽ hướng dẫn cách kết hợp với form để insert dữ liệu.
- Dữ liệu có thể là
_GET
hay_POST
, tùy vào độ bảo mật của dữ liệu, xem lại _GET và P_OST Các bước thực hiện:
- Tạo form insert dữ liệu.
- Kết nối database và table.
- Lấy dữ liệu post từ form
- Xử lý dữ liệu.
- Đóng database.
- Nếu chưa biết cách lấy dữ liệu từ form thì bạn xem lại phần xử lý form
Form dữ liệu
<form action="" method="post"> <table> <tr> <th>Tiêu đề:</th> <td><input type="text" name="title" value=""></td> </tr> <tr> <th>Ngày tháng:</th> <td><input type="date" name="date" value=""></td> </tr> <tr> <th>Mô tả:</th> <td><input type="text" name="description" value=""></td> </tr> <tr> <th>Nội dung:</th> <td><textarea cols="30" rows="7" name="content"></textarea></td> </tr> </table> <button type="submit">Gửi</button> </form>
Xử lý dữ liệu insert
Kiểu hướng đối tượng
<?php $username = "user_tintuc"; // Khai báo username $password = "123456"; // Khai báo password $server = "localhost"; // Khai báo server $dbname = "tintuc"; // Khai báo database // Kết nối database tintuc $connect = new mysqli($server, $username, $password, $dbname); //Nếu kết nối bị lỗi thì xuất báo lỗi và thoát. if ($connect->connect_error) { die("Không kết nối :" . $conn->connect_error); exit(); } //Khai báo giá trị ban đầu, nếu không có thì khi chưa submit câu lệnh insert sẽ báo lỗi $title = ""; $date = ""; $description = ""; $content = ""; //Lấy giá trị POST từ form vừa submit if ($_SERVER["REQUEST_METHOD"] == "POST") { if(isset($_POST["title"])) { $title = $_POST['title']; } if(isset($_POST["date"])) { $date = $_POST['date']; } if(isset($_POST["description"])) { $description = $_POST['description']; } if(isset($_POST["content"])) { $content = $_POST['content']; } //Code xử lý, insert dữ liệu vào table $sql = "INSERT INTO tin_xahoi (title, date, description, content) VALUES ('$title', '$date', '$description', '$content')"; if ($connect->query($sql) === TRUE) { echo "Thêm dữ liệu thành công"; } else { echo "Error: " . $sql . "<br>" . $connect->error; } } //Đóng database $connect->close(); ?> <form action="" method="post"> <table> <tr> <th>Tiêu đề:</th> <td><input type="text" name="title" value=""></td> </tr> <tr> <th>Ngày tháng:</th> <td><input type="date" name="date" value=""></td> </tr> <tr> <th>Mô tả:</th> <td><input type="text" name="description" value=""></td> </tr> <tr> <th>Nội dung:</th> <td><textarea cols="30" rows="7" name="content"></textarea></td> </tr> </table> <button type="submit">Gửi</button> </form>
Thêm dữ liệu thành công
- Nếu không xảy ra lỗi gì, dữ liệu được insert thì sẽ xuất câu thông báo như trên.
Kiểu thủ tục
<?php $username = "user_tintuc"; // Khai báo username $password = "123456"; // Khai báo password $server = "localhost"; // Khai báo server $dbname = "tintuc"; // Khai báo database // Kết nối database tintuc $connect = mysqli_connect($server, $username, $password, $dbname); //Nếu kết nối bị lỗi thì xuất báo lỗi và thoát. if (!$connect) { die("Không kết nối :" . mysqli_connect_error()); exit(); } //Khai báo giá trị ban đầu, nếu không có thì khi chưa submit câu lệnh insert sẽ báo lỗi $title = ""; $date = ""; $description = ""; $content = ""; //Lấy giá trị POST từ form vừa submit if ($_SERVER["REQUEST_METHOD"] == "POST") { if(isset($_POST["title"])) { $title = $_POST['title']; } if(isset($_POST["date"])) { $date = $_POST['date']; } if(isset($_POST["description"])) { $description = $_POST['description']; } if(isset($_POST["content"])) { $content = $_POST['content']; } //Code xử lý, insert dữ liệu vào table $sql = "INSERT INTO tin_xahoi (title, date, description, content) VALUES ('$title', '$date', '$description', '$content')"; if (mysqli_query($connect, $sql)) { echo "Thêm dữ liệu thành công"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($connect); } } //Đóng database mysqli_close($connect); ?> <form action="" method="post"> <table> <tr> <th>Tiêu đề:</th> <td><input type="text" name="title" value=""></td> </tr> <tr> <th>Ngày tháng:</th> <td><input type="date" name="date" value=""></td> </tr> <tr> <th>Mô tả:</th> <td><input type="text" name="description" value=""></td> </tr> <tr> <th>Nội dung:</th> <td><textarea cols="30" rows="7" name="content"></textarea></td> </tr> </table> <button type="submit">Gửi</button> </form>
Thêm dữ liệu thành công
Trong file download đã có sẵn file tintuc.sql, file này là file dữ liệu mẫu, sau khi đã tạo database chúng ta có thể đưa dữ liệu từ file tintuc.sql bằng thao tác import có trong phpMyAdmin.