php menggunakan pdo untuk menambah dan memadam

王林
Lepaskan: 2023-05-28 21:30:38
asal
686 orang telah melayarinya

Penjelasan terperinci tentang operasi pengubahsuaian

PHP ialah bahasa skrip yang sangat popular dalam medan rangkaian, dan dalam PHP, kami selalunya perlu berinteraksi dengan pangkalan data untuk menyelesaikan operasi penyimpanan, pertanyaan dan kemas kini . Untuk operasi data, pada masa ini kaedah yang paling biasa digunakan termasuk mysqli dan PDO Dalam artikel ini, kami akan memberi tumpuan kepada menerangkan penggunaan PDO (Objek Data PHP) dan cara menggunakan PDO untuk menambah, memadam, mengubah suai dan pertanyaan data.

  1. Konsep asas PDO

PDO ialah kaedah pemprosesan lapisan akses data berorientasikan objek yang ringan dan konsisten yang diperkenalkan dalam PHP 5.1, yang menyediakan API bersatu untuk mengakses pelbagai hubungan pangkalan data. Menggunakan PDO untuk menyambung ke pangkalan data boleh menyediakan objek pemacu pangkalan data tertentu dan serasi dengan pelbagai jenis pangkalan data pada tahap yang paling besar. Apabila anda perlu menukar pangkalan data, anda hanya perlu menukar pemacu pangkalan data, tanpa mengubah suai antara muka operasi pangkalan data yang lain.

Sebelum menggunakan PDO untuk operasi pangkalan data, kami perlu melakukan operasi sambungan pangkalan data terlebih dahulu PDO menyediakan cara yang lebih mudah untuk menyambung ke pangkalan data:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
Salin selepas log masuk

Dengan kod di atas, kami boleh Mencipta PDO. objek bernama $dbh yang disambungkan ke pangkalan data MySQL bernama test. $user dan $pass ialah nama pengguna dan kata laluan pangkalan data, dan mysql:host=localhost mewakili alamat hos yang menyambung ke pangkalan data.

  1. Menggunakan PDO untuk operasi pertanyaan data

Apabila menggunakan PDO untuk operasi pertanyaan data, mula-mula kita perlu membuat pernyataan pertanyaan melalui objek PDO dan menyimpan hasilnya dalam dalam pembolehubah. PDO menyokong penyataan pertanyaan yang telah disusun sebelumnya, yang boleh meningkatkan kecekapan pertanyaan dengan ketara dan mengelakkan serangan suntikan SQL.

2.1 Operasi pertanyaan

Dalam PDO, kami perlu menyediakan pernyataan pertanyaan SQL terlebih dahulu dan melaksanakannya:

$sql = "SELECT * FROM users WHERE username=:username";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':username', $username);
$stmt->execute();
Salin selepas log masuk

Dalam kod di atas, kami mengikat parameter: nama pengguna ke pembolehubah Nilai $username terikat pada pernyataan pertanyaan, dengan itu mengelakkan kelemahan suntikan SQL.

2.2 Dapatkan hasil pertanyaan

Selepas kami berjaya melaksanakan pernyataan pertanyaan, kami perlu mendapatkan hasil pelaksanaan PDO menyediakan cara berikut untuk mendapatkan hasil pertanyaan:

  • fetch(): Dapatkan hasil pertanyaan baris demi baris, kembalikan satu baris data setiap kali;
  • fetchColumn(): Dapatkan nilai lajur yang ditentukan dalam set hasil;
  • rowCount(): Kembalikan jumlah bilangan baris dalam hasil pertanyaan.
  • Berikut ialah contoh kod untuk mendapatkan hasil pertanyaan:
  • while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "username: " . $row['username'] . "
    ";
        echo "email: " . $row['email'] . "
    ";
    }
    Salin selepas log masuk
Dalam kod sampel di atas, kami merentasi keputusan pertanyaan yang ditetapkan melalui gelung sementara, mengembalikan satu baris data setiap satu masa, dan gema Pernyataan mengeluarkan nilai yang sepadan dengan nama pengguna dan lajur e-mel dalam setiap baris data.

2.3 Ikat parameter

Apabila menggunakan PDO untuk melaksanakan pertanyaan yang diprakompil, kita perlu mengikat parameter dinamik dalam pernyataan pertanyaan kepada pembolehubah untuk mengelakkan kerentanan suntikan SQL. PDO menyokong kaedah berikut untuk pengikatan parameter:

bindParam(): Ikat pembolehubah pada parameter pernyataan yang disediakan; pernyataan yang disediakan;

    execute(): laksanakan objek PDOStatement.
  • Berikut ialah kod sampel untuk pengikatan parameter menggunakan kaedah bindParam():
  • $stmt = $dbh->prepare("SELECT * FROM users WHERE username=:username AND email=:email");
    $stmt->bindParam(':username', $username);
    $stmt->bindParam(':email', $email);
    $stmt->execute();
    Salin selepas log masuk
  • Dalam kod sampel di atas, kami menggunakan kaedah bindParam() untuk mengikat $nama pengguna dan $email Pembolehubah terikat pada parameter yang sepadan dalam pernyataan pertanyaan, dan operasi pertanyaan dilaksanakan melalui kaedah execute(). Dengan cara ini, kita boleh mengelakkan kelemahan suntikan SQL semasa membuat pertanyaan.

Gunakan PDO untuk menambah, memadam dan mengubah suai data

Apabila menggunakan PDO untuk menambah, memadam dan mengubah suai data, kita perlu mencipta objek PDO Pernyataan operasi yang sepadan dan simpan hasilnya dalam pembolehubah. Apabila melaksanakan penyataan melalui objek PDO, PDO secara automatik akan melepaskan data input dan menyusunnya sebelum pelaksanaan, dengan itu mengelakkan kelemahan suntikan SQL.
  1. 3.1 Operasi penambahan data
Dalam PDO, kami mencipta pernyataan SQL praproses melalui kaedah prepare() dan menggunakan kaedah execute() untuk menghantar parameter ke dalam pernyataan. Berikut ialah kod sampel yang menggunakan PDO untuk penambahan data:

// 准备SQL语句并绑定参数
$sql = "INSERT INTO `users` (`username`, `email`) VALUES (?, ?)";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(1, $username);
$stmt->bindParam(2, $email);

// 执行SQL语句,插入新的用户记录
$username = 'test_user';
$email = 'test_user@example.com';
$stmt->execute();
Salin selepas log masuk

Dalam kod di atas, kami mula-mula mencipta pernyataan SQL yang dipraproses melalui kaedah prepare() dan menggunakan kaedah bindParam() untuk menetapkan pembolehubah $username dan $email terikat pada dua ruang letak tanda soal dalam penyata, sepadan dengan dua dalam

? . Akhir sekali, pernyataan SQL dilaksanakan melalui kaedah execute() untuk melengkapkan operasi menambah data.

3.2 Operasi pemadaman data

Apabila menggunakan PDO untuk memadam data, kita perlu mencipta pernyataan SQL praproses melalui kaedah prepare() dan menggunakan kaedah bindParam() untuk memadamkan terikat data kepada kenyataan ini. Berikut ialah contoh kod untuk menggunakan PDO untuk pemadaman data: VALUES (?, ?)

// 准备SQL语句并绑定参数
$sql = "DELETE FROM `users` WHERE `username` = ?";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(1, $username);

// 执行SQL语句,删除指定用户名的用户记录
$username = 'test_user';
$stmt->execute();
Salin selepas log masuk

Dalam kod sampel di atas, kami mula-mula mencipta pernyataan SQL yang dipraproses melalui kaedah prepare() untuk membolehkannya melaksanakan operasi pemadaman data dan lulus. Kaedah bindParam() mengikat pembolehubah $nama pengguna kepada pemegang tempat tanda soal dalam pernyataan, sepadan dengan salah satu

? . Akhir sekali, pernyataan SQL dilaksanakan melalui kaedah execute() dan operasi pemadaman data selesai.

3.3 Operasi pengubahsuaian data

使用PDO进行数据修改时,我们需要通过prepare()方法创建一个预处理的SQL语句,并使用bindParam()方法将需要修改的数据绑定到该语句中。下面是使用PDO进行数据修改的示例代码:

// 准备SQL语句并绑定参数
$sql = "UPDATE `users` SET `email` = ? WHERE `username` = ?";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(1, $email);
$stmt->bindParam(2, $username);

// 执行SQL语句,更新指定用户名的用户记录
$username = 'test_user';
$email = 'new_test_user@example.com';
$stmt->execute();
Salin selepas log masuk

在上述示例代码中,我们使用prepare()方法创建了一个预处理的SQL语句,并使用bindParam()方法将需要修改的参数绑定到该语句中。其中,使用了SET语句将用户记录中的email字段进行修改,并使用了WHERE语句将修改操作限制在了指定的用户上。在bindParam()方法中,我们通过1和2两个参数分别对应了email和username,从而完成了参数绑定的操作。

  1. 总结

通过本文的学习,我们了解了如何使用PDO进行MySQL数据库的连接、查询、数据添加、删除和修改等操作。在使用PDO进行操作时,我们需要使用prepare()方法创建一个预处理的SQL语句,并使用bindParam()方法对该语句中的动态参数进行绑定。这样,在使用execute()方法执行语句时,我们就可以避免SQL注入漏洞的发生,使数据操作更加安全可靠。

Atas ialah kandungan terperinci php menggunakan pdo untuk menambah dan memadam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!