Truy Vấn (select) Dữ Liệu Và Câu Lệnh Where Trong MySQL Với PHP
Có thể bạn quan tâm
Trong bài này, chúng ta sẽ tìm hiểu về select dữ liệu trong MySQL với PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
Các ví dụ select dữ liệu sẽ thực hiện trên table gochocit_posts trong database gochocit. Database và table này đã được tạo trong bài Tạo database và tạo table trong MySQL với PHP. Các bạn cần đọc lại để xem cấu trúc của database và table trên.

Chúng ta có thể select một hoặc nhiều cột trong table. Cú pháp:SELECT column_name(s) FROM table_name
Nếu muốn select tất cả cột trong table thì sử dụng ký tự *. Cú pháp:SELECT * FROM table_name
1. Truy vấn (select) table sử dụng MySQLi (object-oriented)
Câu lệnh SELECT FROM được thực thi khi đối tượng mysqli là $conn gọi hàm query().<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "gochocit"; // create connection $conn = new mysqli($servername, $username, $password, $dbname); // check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT post_author, post_title, post_content FROM gochocit_posts"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "Author: " . $row["post_author"]. " - Title: " . $row["post_title"]. " - " . $row["post_content"]. "<br>"; } } else { echo "0 results"; } $conn->close(); ?>
Thuộc tính num_rows lưu trữ số dòng (row) select được. Hàm fetch_assoc() trả về mảng kết hợp (associative array) của những dòng select được. Vòng lặp while được sử dụng để duyệt qua từng dòng của kết quả select được.
2. Truy vấn (select) table sử dụng MySQLi (procedural)
Câu lệnh SELECT FROM được thực thi khi gọi hàm mysqli_query().<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "gochocit"; // create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // check connection if (!$conn) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT post_author, post_title, post_content FROM gochocit_posts"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // output data of each row while($row = mysqli_fetch_assoc($result)) { echo "Author: " . $row["post_author"]. " - Title: " . $row["post_title"]. " - " . $row["post_content"]. "<br>"; } } else { echo "0 results"; } mysqli_close($conn); ?>
Hàm mysqli_num_rows() giúp lấy ra số dòng (row) select được. Hàm mysqli_fetch_assoc() trả về mảng kết hợp (associative array) của những dòng select được. Vòng lặp while được sử dụng để duyệt qua từng dòng của kết quả select được.
3. Truy vấn (select) table sử dụng PDO (PHP Data Objects)
Câu lệnh SELECT FROM được thực thi khi đối tượng PDO là $conn gọi hàm prepare() rồi thực thi select với hàm execute().<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "gochocit"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("SELECT post_author, post_title, post_content FROM gochocit_posts"); $stmt->execute(); // set the resulting array to associative $stmt->setFetchMode(PDO::FETCH_ASSOC); $result = $stmt->fetchAll(); foreach($result as $row) { echo "Author: " . $row["post_author"]. " - Title: " . $row["post_title"]. " - " . $row["post_content"]. "<br>"; } } catch(PDOException $e) { echo "Error: " . $e->getMessage(); } $conn = null; ?>
Sử dụng hàm setFetchMode() với đối số PDO::FETCH_ASSOC để thiết lập kết quả trả về là mảng kết hợp (associative array) của những dòng select được. Hàm fetchAll() trả về tất cả những dòng select được. Vòng lặp foreach được sử dụng để duyệt qua từng dòng của kết quả select được.
4. Truy vấn (select) table với câu lệnh where
Chúng ta có thể sử dụng câu lệnh WHERE với SELECT để lấy ra những dòng (row) thỏa mãn một điều kiện nào đó. Ví dụ:<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "gochocit"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("SELECT * FROM gochocit_posts WHERE ID='3'"); $stmt->execute(); // set the resulting array to associative $stmt->setFetchMode(PDO::FETCH_ASSOC); $result = $stmt->fetchAll(); foreach($result as $row) { echo "Author: " . $row["post_author"]. " - Title: " . $row["post_title"]. " - " . $row["post_content"]. "<br>"; } } catch(PDOException $e) { echo "Error: " . $e->getMessage(); } $conn = null; ?>
Trong ví dụ trên, chúng ta chỉ lấy ra dòng dữ liệu nào có ID=3. Các bạn có thể đọc bài Sử dụng mệnh đề WHERE trong MySQL với Python để xem thêm một số cách sử dụng WHERE với SELECT.
- Thuật toán sắp xếp nổi bọt (Bubble Sort)
- Truy vấn (select) dữ liệu và câu lệnh where trong MySQL với Python
- Thread là gì? Cách tạo Thread trong Java
- C++ hỗ trợ đa kế thừa trong lập trình hướng đối tượng
- Tham số (parameter) của hàm trong Python
Từ khóa » Câu Lệnh Truy Vấn Sql Trong Php
-
Bài 5: Một Số Câu Lệnh SQL Trong MySQl Khi Lập Trình PHP
-
Truy Xuất Dữ Liệu MySQL Trong PHP
-
Bài 09: Select Dữ Liệu MySQL Bằng PHP
-
Các Hàm, Câu Lệnh PHP Và SQL Xử Lý Họ Tên Số Lượng Lớn - Kiến Càng
-
Câu Lệnh SELECT | MySQL & PHP
-
Sử Dụng Câu Lệnh SELECT Trong PHP Và MySQL - Học Lập Trình
-
Bài 26: Select Dữ Liệu MySQL Bằng PHP - Học Lập Trình PHP Cơ Bản
-
Các Hàm PHP Dùng Làm Việc Với Cơ Sở Dữ Liệu MySQL - Web Cơ Bản
-
Select Dữ Liệu Từ MySQL Trong PHP - Học Lập Trình PHP Online
-
PHP: Thao Tác Trên Dữ Liệu (Data) - V1Study
-
Thực Thi Nhiều Truy Vấn SQL Trong Một Câu Lệnh Với PHP - HelpEx
-
Bài 05: Xuất Dữ Liệu Trong PHP - Vi
-
Bài 17: Các Thao Tác Với MySQL Trong Lập Trình PHP - Nắng Việt
-
Thao Tác Với MySQL Database Sử Dụng MySQLi Extension Trong ...