Cách tìm nạp dữ liệu bằng PDO trong PHP

Đọc dữ liệu từ cơ sở dữ liệu không khác lắm so với chèn dữ liệu, với bước 1 đến 5 gần như giống hệt nhau trong khi bước thứ sáu thì khác

1] Viết câu lệnh chọn thông thường và một lần nữa, thay vì các giá trị, hãy đặt các phần giữ chỗ có tên. Ví dụ

1

$sql = "CHỌN * TỪ người dùng";

2] Chuẩn bị truy vấn

1

$truy vấn = $dbh -> prepare[$sql];

3] Thực hiện truy vấn

1

$truy vấn -> thực thi[];

4] Gán dữ liệu mà bạn đã lấy từ cơ sở dữ liệu [ở bước trước] cho một biến

1

$kết quả = $truy vấn -> fetchAll[PDO::FETCH_OBJ];

Ở đây tôi đã sử dụng tham số PDO. FETCH_OBJ trả về dữ liệu đã tìm nạp dưới dạng một đối tượng. Nếu bạn muốn tìm nạp dữ liệu ở dạng mảng, hãy sử dụng. PDO. FETCH_ASSOC. 5] Đảm bảo rằng bạn có thể truy xuất dữ liệu từ cơ sở dữ liệu bằng cách đếm số lượng bản ghi

1

if[$truy vấn -> rowCount[] > 0]{}

6] Trong trường hợp truy vấn trả về ít nhất một bản ghi, chúng ta có thể lặp lại các bản ghi trong vòng lặp foreach

Đầu tiên, kết nối với cơ sở dữ liệu MySQL. Kiểm tra kết nối với cơ sở dữ liệu MySQL bằng hướng dẫn PDO để biết thông tin chi tiết

$pdo = new PDO["mysql:host=$host;dbname=$dbname", $username, $password];

Code language: PHP [php]

Sau đó, xây dựng một câu lệnh SELECT và thực thi nó bằng cách sử dụng phương thức

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
2 của đối tượng PDO

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]

Phương thức

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
2 của đối tượng PDO trả về một đối tượng

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
4 hoặc

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
0 nếu không thành công

Tiếp theo, đặt chế độ tìm nạp

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
1 cho đối tượng

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
4 bằng cách sử dụng phương thức

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
3. Chế độ

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
1 hướng dẫn phương thức

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
5 trả về tập kết quả dưới dạng một mảng được lập chỉ mục theo tên cột

$q->setFetchMode[PDO::FETCH_ASSOC];

Code language: PHP [php]

Sau đó, tìm nạp từng hàng từ tập kết quả cho đến khi không còn hàng nào bằng cách sử dụng phương thức

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
5 của đối tượng

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
4

Để tất cả chúng cùng nhau

PHP MySQL Query Data Demo Employees First Name Last Name Job Title

Code language: HTML, XML [xml]

PHP MySQL Truy vấn dữ liệu bằng cách sử dụng câu lệnh chuẩn bị PDO

Trong thực tế, chúng ta thường chuyển đối số từ PHP sang câu lệnh SQL e. g. , lấy nhân viên có họ kết thúc bằng

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
8. Để làm điều đó một cách an toàn và tránh tấn công SQL injection, bạn cần sử dụng câu lệnh chuẩn bị PDO

Hãy cùng xem ví dụ sau

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
1

Cách thức hoạt động của kịch bản

  • Đầu tiên, chúng tôi sử dụng dấu chấm hỏi [?] trong câu lệnh

    $sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

    Code language: PHP [php]
    9. PDO sẽ thay thế dấu chấm hỏi trong truy vấn bằng đối số tương ứng. Dấu chấm hỏi được gọi là giữ chỗ vị trí
  • Tiếp theo, chúng ta gọi phương thức

    $q->setFetchMode[PDO::FETCH_ASSOC];

    Code language: PHP [php]
    0 của đối tượng PDO để chuẩn bị thực thi câu lệnh SQL
  • Sau đó, chúng ta thực thi câu lệnh bằng cách gọi phương thức

    $q->setFetchMode[PDO::FETCH_ASSOC];

    Code language: PHP [php]
    1 của đối tượng

    $sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

    Code language: PHP [php]
    4. Ngoài ra, chúng tôi chuyển một đối số dưới dạng một mảng để thay thế trình giữ chỗ trong câu lệnh

    $sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

    Code language: PHP [php]
    9. Bằng cách này, câu lệnh

    $sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

    Code language: PHP [php]
    9 sẽ được dịch như sau

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
7
  • Sau đó, chúng tôi đặt chế độ tìm nạp cho đối tượng

    $sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

    Code language: PHP [php]
    4
  • Cuối cùng, chúng tôi tìm nạp từng hàng của tập kết quả và hiển thị trường họ

PHP cung cấp cho bạn một cách khác để sử dụng trình giữ chỗ trong câu lệnh đã chuẩn bị có tên là trình giữ chỗ có tên. Ưu điểm của việc sử dụng trình giữ chỗ được đặt tên là

  • mô tả nhiều hơn
  • Nếu câu lệnh SQL có nhiều trình giữ chỗ, thì việc chuyển các đối số sang phương thức

    $q->setFetchMode[PDO::FETCH_ASSOC];

    Code language: PHP [php]
    1 sẽ dễ dàng hơn

Hãy cùng xem ví dụ sau

$sql = 'SELECT lastname, firstname, jobtitle FROM employees ORDER BY lastname'; $q = $pdo->query[$sql];

Code language: PHP [php]
9

$q->setFetchMode[PDO::FETCH_ASSOC];

Code language: PHP [php]
7 và

$q->setFetchMode[PDO::FETCH_ASSOC];

Code language: PHP [php]
8 là phần giữ chỗ được đặt tên. Chúng được thay thế bằng đối số tương ứng trong mảng kết hợp mà chúng ta chuyển đến phương thức thực thi

Làm cách nào để chạy truy vấn PDO trong PHP?

Để chuẩn bị và thực thi một câu lệnh SQL không chấp nhận tham số đầu vào, hãy sử dụng PDO. exec hoặc PDO. phương thức truy vấn . Sử dụng PDO. exec để thực thi một câu lệnh không trả về tập kết quả nào.

Cách hiển thị tìm nạp dữ liệu từ cơ sở dữ liệu trong PHP?

Có hai cách để kết nối với cơ sở dữ liệu bằng PHP. .
Hướng đối tượng MySQLi $conn->query[$query];
MySQLi Thủ tục mysqli_query[$conn, $query]
PDO. $stmt = $conn->prepare[$query];

Phương pháp nào sau đây được sử dụng để tìm nạp dữ liệu từ câu lệnh PDO?

Chọn. Để tìm nạp kết quả trong PDO, bạn có tùy chọn $stmt->fetch[] hoặc $stmt->fetchAll[] . Cái trước linh hoạt hơn, vì nó có thể được sử dụng để tìm nạp một hàng hoặc tất cả nếu được sử dụng trong một vòng lặp.

Làm cách nào để lấy dữ liệu từ cơ sở dữ liệu trong PHP và hiển thị trong div?

Truy xuất hoặc tìm nạp dữ liệu từ cơ sở dữ liệu trong PHP .
CHỌN [các] tên_cột TỪ_tên_bảng
$query = mysql_query["select * from tablename", $connection];
$connection = mysql_connect["localhost", "root", ""];
$db = mysql_select_db["công ty", kết nối $];
$query = mysql_query["chọn * từ nhân viên", $connection];

Chủ Đề