06/09/2018, 23:34

Select dữ liệu từ MySQL trong PHP

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

PHP

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 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 * FROM table_name

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)

<?php
$servername = "localhost";
$username = "root";
$password = "1234567890";
$dbname = "myDB";

// tạo connection
$conn = new mysqli($servername, $username, $password, $dbname);
// kiểm connection
if ($conn->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"]. "<br>";
    }
} 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)

<?php
$servername = "localhost";
$username = "root";
$password = "1234567890";
$dbname = "myDB";

// tạo connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// kiểm tra connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

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

if (mysqli_num_rows($result) > 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"]. "<br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);
?>

Kết quả:

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

Select dữ liệu với PDO

Chọn các cột id, firstname và lastname từ bảng MyGuests và hiển thị nó trong một bảng HTML:

<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";

class TableRows extends RecursiveIteratorIterator { 
    function __construct($it) { 
        parent::__construct($it, self::LEAVES_ONLY); 
    }

    function current() {
        return "<td style='awidth:150px;border:1px solid black;'>" 
            . parent::current(). "</td>";
    }

    function beginChildren() { 
        echo "<tr>"; 
    } 

    function endChildren() { 
        echo "</tr>" . "
";
    } 
} 

$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 "</table>";
?>

Kết quả:

Select dữ liệu từ MySQL trong PHP
PHP
0