Câu lệnh select thường dùng để lấy dữ liệu và hiển thị lên website ở cả frontend lẫn backend, đây là câu lệnh thông dụng hay sử dụng nhất trong một website.
Trong MySQL để lấy danh sách records trong một bảng dữ liệu thì ta sử dụng lệnh select với cú pháp:
SELECT field1, field2 FROM table_name
Bên cạnh đó ta cũng có sử dụng thêm điều kiện where và limit để giới hạn kết quả trả về. Như vậy việc lấy danh sách dữ liệu trong MySQL bằng PHP thực chất là ta sử dụng PHP để chạy câu truy vấn SQL.
Bài viết này được đăng tại [kiso.vn]
Bây giờ chúng ta cùng tìm hiểu các thao tác lấy dữ liệu với MySQLi.
1. Select data với MySQLi
Chúng ta có hai cách sử dụng đó là sử dụng đối tượng và hàm truyền thống.
Sử dụng MySQLi Object-oriented:
// Kết nối CSDL $conn = new mysqli('localhost', 'root', 'vertrigo', 'KisoDemo'); // Kiểm tra kết nối if ($conn->connect_error) { die("Kết nối thất bại: " . $conn->connect_error); } // Câu SQL lấy danh sách $sql = "SELECT id, title, content FROM News"; // Thực thi câu truy vấn và gán vào $result $result = $conn->query($sql); // Kiểm tra số lượng record trả về có lơn hơn 0 // Nếu lớn hơn tức là có kết quả, ngược lại sẽ không có kết quả if ($result->num_rows > 0) { // Sử dụng vòng lặp while để lặp kết quả while($row = $result->fetch_assoc()) { echo "title: " . $row["title"]. " - Content: " . $row["content"]."<br>"; } } else { echo "Không có record nào"; } // ngắt kết nối $conn->close();
Sử dụng MySQLi Procedural:
// Kết nối CSDL $conn = mysqli_connect('localhost', 'root', 'vertrigo', 'KisoDemo'); // Kiểm tra kết nối if (!$conn) { die("Kết nối thất bại: " . mysqli_connect_error()); } // Câu SQL lấy danh sách $sql = "SELECT id, title, content FROM News"; // Thực thi câu truy vấn và gán vào $result $result = mysqli_query($conn, $sql); // Kiểm tra số lượng record trả về có lơn hơn 0 // Nếu lớn hơn tức là có kết quả, ngược lại sẽ không có kết quả if (mysqli_num_rows($result) > 0) { // Sử dụng vòng lặp while để lặp kết quả while($row = mysqli_fetch_assoc($result)) { echo "title: " . $row["title"]. " - Content: " . $row["content"]. "<br>"; } } else { echo "Không có record nào"; } // ngắt kết nối mysqli_close($conn);
2. Select data với PDO
Chúng ta sẽ sử dụng cơ chế Prepared để truy vấn CSDL.
try { // Kết nối CSDL $conn = new PDO("mysql:host=localhost;dbname=KisoDemo", 'root', 'vertrigo'); // Khai báo exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Sử đụng Prepare $stmt = $conn->prepare("SELECT id, title, content FROM News"); // Thực thi câu truy vấn $stmt->execute(); // Khai báo fetch kiểu mảng kết hợp $stmt->setFetchMode(PDO::FETCH_ASSOC); // Lấy danh sách kết quả $result = $stmt->fetchAll(); // Lặp kết quả foreach ($result as $item){ echo $item['title'] . ' - '. $item['content']; } } catch(PDOException $e) { echo "Lỗi: " . $e->getMessage(); } // Ngắt kết nối $conn = null;
3. Lời kết
Sau khi có kết quả trả về thì chúng ta sẽ kết hợp với giao diện HTML để hiển thị ra bên ngoài website. Công đoạn này phụ thuộc vào từng layout nên mình không đưa ra ví dụ minh họa.
Bài tiếp theo chúng ta sẽ học cách thực hiện lệnh delete dữ liệu với PHP.
Danh sách file tải về
Tên file tải về | Pass giải nén |
---|---|
Tải bài học định dạng PDF | kiso.vn hoặc gameportable.net |
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Select data với MySQLiSử dụng MySQLi Object-oriented:Sử dụng MySQLi Procedural:2....
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Select data với MySQLiSử dụng MySQLi Object-oriented:Sử dụng MySQLi Procedural:2. Select data với PDO3. Lời kết1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Select data với MySQLiSử dụng MySQLi Object-oriented:Sử dụng MySQLi Procedural:2. Select data với PDO3. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Select data với MySQLiSử dụng MySQLi Object-oriented:Sử dụng MySQLi Procedural:2. Select data với PDO3. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Select data với MySQLiSử dụng MySQLi Object-oriented:Sử dụng MySQLi Procedural:2. Select data với PDO3. Lời kếtIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất...