Làm cách nào để tìm nạp dữ liệu từ cơ sở dữ liệu bằng PDO trong PHP?

Có một số cách để chạy truy vấn CHỌN bằng PDO, khác nhau chủ yếu bởi sự hiện diện của tham số, loại tham số và loại kết quả. Tôi sẽ đưa ra các ví dụ cho mọi trường hợp để bạn có thể chọn một trường hợp phù hợp nhất với mình

Chỉ cần đảm bảo rằng bạn có một biến kết nối PDO được định cấu hình phù hợp cần để chạy các truy vấn SQL với PDO và để thông báo cho bạn về các lỗi có thể xảy ra

SELECT truy vấn không có tham số

Nếu không có biến nào sẽ được sử dụng trong truy vấn, chúng ta có thể sử dụng phương pháp query[] thông thường thay vì chuẩn bị và thực hiện

// select all users
$stmt = $pdo->query["SELECT * FROM users"];

Điều này sẽ cung cấp cho chúng tôi một đối tượng

// getting the last registered user
$stmt = $pdo->query["SELECT * FROM users ORDER BY id DESC LIMIT 1"];
$user = $stmt->fetch[];
0 có thể được sử dụng để tìm nạp các hàng thực tế

Bắt một hàng

Nếu một truy vấn được cho là chỉ trả về một hàng, thì bạn chỉ cần gọi phương thức

// getting the last registered user
$stmt = $pdo->query["SELECT * FROM users ORDER BY id DESC LIMIT 1"];
$user = $stmt->fetch[];
1 của biến
// getting the last registered user
$stmt = $pdo->query["SELECT * FROM users ORDER BY id DESC LIMIT 1"];
$user = $stmt->fetch[];
0

// getting the last registered user
$stmt = $pdo->query["SELECT * FROM users ORDER BY id DESC LIMIT 1"];
$user = $stmt->fetch[];

Lưu ý rằng trong PHP bạn có thể "xâu chuỗi" các cuộc gọi phương thức, gọi một phương thức của đối tượng được trả về, như

$user = $pdo->query["SELECT * FROM users ORDER BY id DESC LIMIT 1"]->fetch[];

Chọn nhiều hàng

Có hai cách để tìm nạp nhiều hàng được trả về bởi một truy vấn. Cách truyền thống nhất là sử dụng phương thức

// getting the last registered user
$stmt = $pdo->query["SELECT * FROM users ORDER BY id DESC LIMIT 1"];
$user = $stmt->fetch[];
1 trong vòng lặp
// getting the last registered user
$stmt = $pdo->query["SELECT * FROM users ORDER BY id DESC LIMIT 1"];
$user = $stmt->fetch[];
4

________số 8_______

Phương pháp này có thể được khuyến nghị nếu các hàng phải được xử lý từng cái một. Ví dụ: nếu quá trình xử lý đó là hành động duy nhất cần được thực hiện hoặc nếu dữ liệu cần được xử lý trước bằng cách nào đó trước khi sử dụng

Nhưng cách ưa thích nhất để tìm nạp nhiều hàng sẽ được hiển thị trên trang web là gọi phương thức trợ giúp tuyệt vời có tên là

// getting the last registered user
$stmt = $pdo->query["SELECT * FROM users ORDER BY id DESC LIMIT 1"];
$user = $stmt->fetch[];
5. Nó sẽ đặt tất cả các hàng được truy vấn trả về vào một mảng PHP, sau này có thể được sử dụng để xuất dữ liệu bằng một mẫu [được coi là tốt hơn nhiều so với lặp lại dữ liệu ngay trong quá trình tìm nạp]. Vì vậy, mã sẽ là

$data = $pdo->query["SELECT * FROM users"]->fetchAll[];
// and somewhere later:
foreach [$data as $row] {
    echo $row['name']."
\n";
}

CHỌN truy vấn có tham số

Nhưng hầu hết thời gian chúng ta phải sử dụng một hoặc hai biến trong truy vấn và trong trường hợp như vậy, chúng ta nên sử dụng câu lệnh đã chuẩn bị sẵn [còn gọi là truy vấn được tham số hóa], trước tiên hãy chuẩn bị một truy vấn có tham số [hoặc dấu giữ chỗ] rồi thực hiện truy vấn đó

Trong PDO, chúng ta có thể sử dụng cả trình giữ chỗ theo vị trí và được đặt tên. Đối với các truy vấn đơn giản, cá nhân tôi thích trình giữ chỗ theo vị trí hơn, tôi thấy chúng ít dài dòng hơn, nhưng đó hoàn toàn là vấn đề sở thích

CHỌN truy vấn với trình giữ chỗ vị trí

// select a particular user by id
$stmt = $pdo->prepare["SELECT * FROM users WHERE id=?"];
$stmt->execute[[$id]];
$user = $stmt->fetch[];

CHỌN truy vấn với trình giữ chỗ được đặt tên

// select a particular user by id
$stmt = $pdo->prepare["SELECT * FROM users WHERE id=:id"];
$stmt->execute[['id' => $id]];
$user = $stmt->fetch[];

Chọn nhiều hàng

Tìm nạp nhiều hàng từ một truy vấn đã chuẩn bị sẽ giống với tìm nạp từ một truy vấn không có tham số đã được hiển thị

Tóm lược. trong hướng dẫn này, bạn sẽ học cách truy vấn dữ liệu từ một bảng bằng cách sử dụng PHP PDO bằng cách sử dụng phương thức

Chủ Đề