CHIASE123.COM - Diễn đàn chia sẻ kiến thức

Diễn đàn chia sẻ kiến thức
Thứ Sáu, 14:01:55 - 22/11/2024

Thời gian được tính theo giờ UTC + 7 Giờ




Tạo chủ đề mới Gửi bài trả lời  [ 1 bài viết ] 
Người gửi Nội dung
 Tiêu đề bài viết: [PHP] SELECT query with PDO
Gửi bàiĐã gửi: 08/09/2024 00:51 
Ngoại tuyến
☀️1/30☀️
☀️1/30☀️
Hình đại diện của thành viên

Ngày tham gia: 13/03/2012 14:50
Bài viết: 1
[PHP] SELECT query with PDO

There are several ways to run a SELECT query using PDO, that differ mainly by the presence of parameters, type of parameters, and the result type. I will show examples for the every case so you can choose one that suits you best.

Just make sure you've got a properly configured PDO connection variable that needs in order to run SQL queries with PDO and to inform you of the possible errors.


I - SELECT query without parameters
If there are no variables going to be used in the query, we can use a conventional query() method instead of prepare and execute.
Mã:
// select all users
$stmt = $pdo->query("SELECT * FROM users"); 

This will give us an $stmt object that can be used to fetch the actual rows.

1. Getting a single row
If a query is supposed to return just a single row, then you can just call fetch() method of the $stmt variable:
Mã:
// getting the last registered user
$stmt = $pdo->query("SELECT * FROM users ORDER BY id DESC LIMIT 1");
$user = $stmt->fetch(); 

Note that in PHP you can "chain" method calls, calling a method of the returned object already, like:
Mã:
$user = $pdo->query("SELECT * FROM users ORDER BY id DESC LIMIT 1")->fetch(); 


2. Selecting multiple rows
There are two ways to fetch multiple rows returned by a query. The most traditional way is to use the fetch() method within a while loop:
Mã:
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch()) {
    echo $row['name']."<br />\n";

This method could be recommended if rows have to be processed one by one. For example, if such processing is the only action that needs to be taken, or if the data needs to be pre-processed somehow before use.

But the most preferred way to fetch multiple rows which would to be shown on a web-page is calling the great helper method called fetchAll(). It will put all the rows returned by a query into a PHP array, that later can be used to output the data using a template (which is considered much better than echoing the data right during the fetch process). So the code would be
Mã:
$data = $pdo->query("SELECT * FROM users")->fetchAll();
// and somewhere later:
foreach ($data as $row) {
    echo $row['name']."<br />\n";



II - SELECT query with parameters
But most of time we have to use a variable or two in the query, and in such a case we should use a prepared statement (also called a parameterized query), first preparing a query with parameters (or placeholder marks) and then executing it, sending variables separately.

In PDO we can use both positional and named placeholders. For simple queries, personally I prefer positional placeholders, I find them less verbose, but it's entirely a matter of taste.

1. SELECT query with positional placeholders
Mã:
// select a particular user by id
$stmt = $pdo->prepare("SELECT * FROM users WHERE id=?");
$stmt->execute([$id]); 
$user 
= $stmt->fetch(); 


2. SELECT query with named placeholders
Mã:
// select a particular user by id
$stmt = $pdo->prepare("SELECT * FROM users WHERE id=:id");
$stmt->execute(['id' => $id]); 
$user 
= $stmt->fetch(); 


3. Selecting multiple rows
Fetching multiple rows from a prepared query would be identical to that from a query without parameters already shown:
Mã:
$stmt = $pdo->prepare("SELECT * FROM users LIMIT ?, ?");
$stmt->execute([$limit, $offset]); 
while 
($row = $stmt->fetch()) {
    echo $row['name']."<br />\n";

or:
Mã:
$stmt = $pdo->prepare("SELECT * FROM users LIMIT :limit, :offset");
$stmt->execute(['limit' => $limit, 'offset' => $offset]); 
$data 
= $stmt->fetchAll();
// and somewhere later:
foreach ($data as $row) {
    echo $row['name']."<br />\n";
}


Đầu trang
 Xem thông tin cá nhân Gửi Email  
 
Hiển thị những bài viết cách đây:  Sắp xếp theo  
Tạo chủ đề mới Gửi bài trả lời  [ 1 bài viết ] 

Thời gian được tính theo giờ UTC + 7 Giờ


Chủ đề tương tự
 Chủ đề   Người gửi   Trả lời   Xem   Bài viết mới nhất 
Không có bài viết chưa xem mới nào trong chủ đề này. [PHP] Chọn một tập tin ngẫu nhiên từ thư mục trong PHP - Select a random file from directory in PHP

HTML

0

326

28/06/2024 17:47

HTML Xem bài viết mới nhất vừa gửi

Không có bài viết chưa xem mới nào trong chủ đề này. [PHP] How to check PHP send mail() function - Kiểm tra hàm send mail() php có hoạt động không?

nghiammo1992

0

1037

23/07/2015 00:39

nghiammo1992 Xem bài viết mới nhất vừa gửi

Không có bài viết chưa xem mới nào trong chủ đề này. MySQL Query Cache - Tạo bộ nhớ đệm cache cho MySQL

Weibo

0

380

17/10/2023 04:03

Weibo Xem bài viết mới nhất vừa gửi

Không có bài viết chưa xem mới nào trong chủ đề này. [PHP] Hàm var_dump() trong PHP dùng để làm gì?

VOZ

0

323

19/10/2023 14:19

VOZ Xem bài viết mới nhất vừa gửi

Không có bài viết chưa xem mới nào trong chủ đề này. [PHP] Hàm trim() trong PHP dùng để làm gì?

Shopee

0

333

19/10/2023 20:17

Shopee Xem bài viết mới nhất vừa gửi

Không có bài viết chưa xem mới nào trong chủ đề này. [PHP] Code tăng tốc độ load website - Tối ưu hóa seo

nghiammo1992

2

2247

14/12/2013 08:20

Yoonsiyoon Xem bài viết mới nhất vừa gửi

Không có bài viết chưa xem mới nào trong chủ đề này. Cần người rành về php và tạo wap trên host vào giúp

Gocgiaitri1234

0

1058

19/04/2014 11:39

Gocgiaitri1234 Xem bài viết mới nhất vừa gửi

Không có bài viết chưa xem mới nào trong chủ đề này. [phpMyAdmin Error] The mbstring extension is missing. Please check your PHP configuration

nghiammo1992

0

1067

22/04/2014 22:51

nghiammo1992 Xem bài viết mới nhất vừa gửi

Không có bài viết chưa xem mới nào trong chủ đề này. Bật/Tắt hiển thị thông báo lỗi trong file php - Hàm error_reporting()

nghiammo1992

0

2686

30/04/2015 13:10

nghiammo1992 Xem bài viết mới nhất vừa gửi

Không có bài viết chưa xem mới nào trong chủ đề này. Các hàm làm tròn số trong PHP

nghiammo1992

0

3312

16/09/2015 22:40

nghiammo1992 Xem bài viết mới nhất vừa gửi

 


Ai đang trực tuyến?

Đang xem chuyên mục này: Không có thành viên nào đang trực tuyến13 khách


Bạn không thể tạo chủ đề mới trong chuyên mục này.
Bạn không thể trả lời bài viết trong chuyên mục này.
Bạn không thể sửa những bài viết của mình trong chuyên mục này.
Bạn không thể xoá những bài viết của mình trong chuyên mục này.

Tìm kiếm với từ khoá:
Chuyển đến:  
Đã tích hợp phpBB® Forum Software © phpBB Group
Vietnamese language pack for phpBB 3.0.x download and support.
CHIASE123.COM - Diễn đàn chia sẻ kiến thức