Hướng dẫn php query mysql - truy vấn php mysql

"; class TableRows extends RecursiveIteratorIterator { function __construct($it) { parent::__construct($it, self::LEAVES_ONLY); } function current() { return ""; } function beginChildren() { echo ""; } function endChildren() { echo "" . "\n"; } } $servername = "localhost"; $username = "root"; $password = "1234567890"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests"); $stmt->execute(); // thiết lập mảng kết quả thành mảng kết hợp $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { echo $v; } } catch(PDOException $e) { echo "Error: " . $e->getMessage(); } $conn = null; echo "



Bài này sẽ hướng dẫn bạn select dữ liệu từ MySQL trong PHP bằng cách sử dụng MySQLi và PDO. select dữ liệu từ MySQL trong PHP bằng cách sử dụng MySQLi PDO.

Câu lệnh SELECT được sử dụng để lấy dữ liệu từ một hoặc nhiều bảng:

Cú pháp câu lệnh SELECT trong MySQL:

SELECT column_name(s) FROM table_name

hoặc chúng ta có thể sử dụng ký tự * để chọn TẤT CẢ các cột từ một bảng:


Select dữ liệu với MySQLi

Ví dụ sau chọn cột id, firstname và lastname từ bảng MyGuests và hiển thị các thông tin này trên trang:

Ví dụ (MySQLi hướng đối tượng)

connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output dữ liệu trên trang
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " 
            . $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>

Kết quả:

id: 1 - Name: David Vinh
id: 2 - Name: Tran Tan

Đoạn code trên có thể được giải thích như sau:

Đầu tiên, chúng ta thiết lập một truy vấn SQL để chọn các cột id, firstname và lastname từ bảng MyGuests. Dòng code tiếp theo thực thi truy vấn và đưa kết quả vào một biến gọi là $result.

Sau đó, các function num_rows()kiểm tra nếu có nhiều hơn 0 bản ghi trả về.

Nếu có nhiều bản ghi được trả về, hàm fetch_assoc() sẽ đặt tất cả các kết quả vào một mảng kết hợp mà chúng ta có thể lặp lại. Vòng lặp while() lặp tập kết quả và kết quả và cột id, firstname và lastname được hiển thị trên trang.

Ví dụ (MySQLi hướng thủ tục)

 0) {
    // hiển thị dữ liệu trên trang
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " 
            . $row["lastname"]. "
"; } } else { echo "0 results"; } mysqli_close($conn); ?>

Kết quả:

id: 1 - Name: David Vinh
id: 2 - Name: Tran Tan



Đoạn code trên có thể được giải thích như sau:

Đầu tiên, chúng ta thiết lập một truy vấn SQL để chọn các cột id, firstname và lastname từ bảng MyGuests. Dòng code tiếp theo thực thi truy vấn và đưa kết quả vào một biến gọi là $result.

";
echo "
IdFirstnameLastname
" . parent::current(). "
"; ?>

Kết quả:

Hướng dẫn php query mysql - truy vấn php mysql



  • Trang chủ
  • Hướng dẫn học
  • Học PHP
  • Kết nối MySQL

Kết nối MySQL

  • Kết nối PHP & MySQL là bước cơ bản khi bạn muốn bất kỳ thao tác nào liên quan đến MySQL.
  • Từ phiên bản PHP 5.5 trở đi, thư viện MySQL sẽ không còn được hỗ trợ, và phiên bản PHP 7 trở lên đã gỡ bỏ hoàn toàn thư viện MySQL, thay vào đó 2 thư viện khác được sử dụng là MySQLi và PDO.
  • Trong phạm vi của phần hướng dẫn PHP này chỉ đề cập đến MySQLi, vì cấu trúc và các viết tương tự như thư viện MySQL trước đó.
  • MySQLi có 2 lựa chọn cách viết khác nhau:

    • Theo kiểu thủ tục: viết giống như MySQL chỉ khác là thay đổi mysql thành mysqli.
    • Theo kiểu hướng đối tượng

Một số hàm cơ bản MySQLi sử dụng trong phần hướng dẫn học này:

Kiểu thủ tục (Procedural)
(Procedural)
Kiểu hướng đối tượng (Object-Oriented)
(Object-Oriented)
Mô tả
$ketnoi = mysqli_connect() = mysqli_connect() $ketnoi = new mysqli() = new mysqli() Tạo kết nối database
mysqli_connect_error() $ketnoi->connect_error ->connect_error Lỗi kết nối
mysqli_close($ketnoi) $ketnoi) $ketnoi->close() ->close() Ngắt kết nối MySQLi
$ketqua = mysqli_query($ketnoi, $sql) = mysqli_query($ketnoi, $sql) $ketqua = $ketnoi->query($sql) = $ketnoi->query($sql) Truy vấn table từ $ketnoi Với $sql là câu truy vấn select $ketnoi
Với $sql là câu truy vấn select
mysqli_num_rows($ketqua) $ketqua) $ketqua->num_rows ->num_rows Số lượng số hàng có trong table.
mysqli_fetch_assoc($ketqua) $ketqua) $ketqua->fetch_assoc() ->fetch_assoc() Số lượng số hàng có trong table.

mysqli_fetch_assoc($ketqua)

$ketqua->fetch_assoc()

Kết nối MySQLi

Nếu chưa biết về cách tạo database và thông tin kết nối thì bạn có thể xem lại cách tạo từ phpMyAdmin.

Nếu chưa biết file PHP được tạo ở đâu thì bạn có thể xem lại Thư mục làm việc khi cài XAMPP.

Kiểu hướng đối tượng

// 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();
}
echo "Khi kết nối thành công sẽ tiếp tục dòng code bên dưới đây."
?>

// 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();
}
echo "Khi kết nối thành công sẽ tiếp tục dòng code bên dưới đây."
?>

Khi kết nối thành công sẽ tiếp tục dòng code bên dưới đây.

Download file ví dụ

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.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.