Rumah pembangunan bahagian belakang masalah PHP Cara menggunakan PDO untuk operasi pertanyaan pangkalan data dalam PHP

Cara menggunakan PDO untuk operasi pertanyaan pangkalan data dalam PHP

Apr 12, 2023 am 09:19 AM

PHP PDO ialah antara muka yang boleh menyambung ke pelbagai pangkalan data yang berbeza. Dalam aplikasi PHP, ia boleh menyambungkan kod PHP dengan sistem pangkalan data seperti MySQL, PostgreSQL, Oracle, dll. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PDO untuk operasi pertanyaan.

  1. Sambung ke pangkalan data

Sebelum menggunakan PDO untuk menanyakan pangkalan data, anda perlu membuat sambungan terlebih dahulu. Berikut ialah contoh kod untuk menyambung ke pangkalan data MySQL:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>
Salin selepas log masuk

Kod ini akan menyambung ke pangkalan data MySQL tempatan dan menggesa maklumat tentang kejayaan atau kegagalan sambungan. Melalui contoh ini, kita dapat melihat bahawa PDO mengendalikan ralat sambungan melalui pengendalian pengecualian.

  1. Menyiasat satu baris data

Seterusnya, kami akan memperkenalkan cara menggunakan PDO untuk menanyakan satu baris data. Berikut ialah contoh kod untuk menanyakan satu baris data:

<?php
$stmt = $conn->prepare("SELECT * FROM customers WHERE id = :id");
$stmt->bindParam(':id', $id);

$id = 1;
$stmt->execute();

$result = $stmt->fetch(PDO::FETCH_ASSOC);

echo "id: " . $result['id'] . "<br>";
echo "name: " . $result['name'] . "<br>";
echo "email: " . $result['email'] . "<br>";
?>
Salin selepas log masuk

Kod ini akan menanyakan baris data dalam pangkalan data dan mengeluarkan hasilnya. Pertama, kami menggunakan kaedah PDO::prepare() untuk menyediakan pernyataan pertanyaan, kemudian gunakan kaedah bindParam() untuk mengikat parameter pertanyaan kepada ruang letak, kemudian gunakan kaedah execute() untuk melaksanakan pertanyaan, dan akhirnya gunakan kaedah fetch() untuk mengambil keputusan pertanyaan Kembali.

  1. Menyiasat data berbilang baris

PDO juga menyokong menanyakan data berbilang baris. Berikut ialah contoh kod untuk menanyakan berbilang baris data:

<?php
$stmt = $conn->prepare("SELECT * FROM customers");
$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($result as $row) {
    echo "id: " . $row['id'] . "<br>";
    echo "name: " . $row['name'] . "<br>";
    echo "email: " . $row['email'] . "<br>";
    echo "<hr>";
}
?>
Salin selepas log masuk

Kod ini menggunakan kaedah fetchAll() untuk menanyakan berbilang baris data dalam pangkalan data dan mengeluarkan setiap baris data dalam gelung. Kaedah fetchAll() mengembalikan tatasusunan dua dimensi dan kita boleh menggunakan foreach untuk melintasi setiap baris data.

  1. Data pertanyaan dan paparkannya dalam halaman

Dalam aplikasi web, biasanya kita perlu melayari halaman hasil pertanyaan. Berikut ialah contoh kod untuk pertanyaan data dan memaparkannya dalam halaman:

<?php
$records_per_page = 10;
$page = isset($_GET['page']) ? $_GET['page'] : 1;

$stmt = $conn->prepare("SELECT * FROM customers LIMIT :offset, :records_per_page");
$stmt->bindParam(':offset', ($page - 1) * $records_per_page, PDO::PARAM_INT);
$stmt->bindParam(':records_per_page', $records_per_page, PDO::PARAM_INT);

$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($result as $row) {
    echo "id: " . $row['id'] . "<br>";
    echo "name: " . $row['name'] . "<br>";
    echo "email: " . $row['email'] . "<br>";
    echo "<hr>";
}

$stmt = $conn->prepare("SELECT COUNT(*) FROM customers");
$stmt->execute();

$total_records = $stmt->fetchColumn();
$total_pages = ceil($total_records / $records_per_page);

echo "<div>";
for($i = 1; $i <= $total_pages; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
}
echo "</div>";
?>
Salin selepas log masuk

Kod pertama mentakrifkan nombor rekod dan pembolehubah nombor halaman, dan kemudian menambahkannya pada pernyataan pertanyaan. Dalam gelung, kami mengeluarkan setiap baris data. Seterusnya, kami menanyakan jumlah rekod dan mengira jumlah halaman. Akhirnya, kami mengeluarkan pautan bernombor muka surat.

Kesimpulan

Di atas ialah beberapa contoh penggunaan PDO untuk menanyakan pangkalan data dengan PHP. Kod ini boleh membantu anda menggunakan pernyataan pertanyaan PDO dengan betul dalam aplikasi PHP anda.

Atas ialah kandungan terperinci Cara menggunakan PDO untuk operasi pertanyaan pangkalan data dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana saya bekerja dengan sambungan php dan pecl? Bagaimana saya bekerja dengan sambungan php dan pecl? Mar 10, 2025 pm 06:12 PM

Bagaimana saya bekerja dengan sambungan php dan pecl?

Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Mar 10, 2025 pm 06:16 PM

Apakah piawaian pengekodan PHP terkini dan amalan terbaik?

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Mar 10, 2025 pm 06:15 PM

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP?

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Mar 03, 2025 pm 04:51 PM

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama?

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Mar 03, 2025 pm 04:47 PM

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi?

Apakah amalan terbaik untuk deduplikasi tatasusunan php Apakah amalan terbaik untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:41 PM

Apakah amalan terbaik untuk deduplikasi tatasusunan php

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:50 PM

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Mar 10, 2025 pm 06:12 PM

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP?

See all articles