Hướng dẫn what is mysql_query() function? - hàm mysql_query() là gì?

"; 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 what is mysql_query() function? - hàm mysql_query() là gì?



Đ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. freetuts.net, không được copy dưới mọi hình thức.

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

SELECT field1, field2 FROM table_name

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

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

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:

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.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

// Kết nối CSDL
$conn = new mysqli('localhost', 'root', 'vertrigo', 'FreetutsDemo');

// 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"]."
"; } } else { echo "Không có record nào"; } // ngắt kết nối $conn->close();

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:

// Kết nối CSDL
$conn = mysqli_connect('localhost', 'root', 'vertrigo', 'FreetutsDemo');

// 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"]. "
"; } } else { echo "Không có record nào"; } // ngắt kết nối mysqli_close($conn);

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 [free tuts .net]

try {
    // Kết nối CSDL
    $conn = new PDO("mysql:host=localhost;dbname=FreetutsDemo", '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;

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.