PDO ialah kaedah mengakses pangkalan data dalam PHP Ia boleh berinteraksi dengan pangkalan data hubungan yang berbeza. Pernyataan yang disediakan oleh PDO ialah ciri yang menjadikan PDO lebih berkuasa dan ia boleh mengelakkan isu keselamatan seperti suntikan SQL dengan berkesan.
Artikel ini akan memperkenalkan pernyataan PDO yang disediakan, memfokuskan pada cara menggunakan pernyataan PDO yang disediakan untuk operasi pangkalan data.
Apakah pernyataan yang disediakan oleh PDO?
Pernyataan yang disediakan PDO ialah kaedah menyediakan pernyataan SQL dahulu dan kemudian melaksanakannya. Ia menghalang serangan suntikan SQL dengan membahagikan pernyataan pertanyaan SQL kepada dua langkah, langkah pertama ialah menyediakan pertanyaan, dan langkah kedua ialah melaksanakan pertanyaan.
Kelebihan menggunakan pernyataan PDO yang disediakan:
1. Pemeriksaan keselamatan
Menggunakan pernyataan PDO yang disediakan boleh menghalang serangan suntikan SQL. Semasa menyediakan pertanyaan, pernyataan yang serupa dengan ini: $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");, mereka menggunakan titik bertindih (:) untuk mentakrifkan parameter dan Parameter pemisahan dan pelepasan pernyataan SQL.
2. Peningkatan prestasi
Setiap kali pernyataan PDO yang disediakan dipanggil, pangkalan data hanya perlu disusun dan dioptimumkan sekali dan bukannya melaksanakan pertanyaan setiap kali, yang boleh meningkatkan kecekapan pertanyaan.
3. Pembayang jenis data
Pernyataan yang disediakan oleh PDO boleh memberikan petunjuk jenis data untuk memastikan bahawa parameter yang diterima oleh pangkalan data adalah betul, contohnya, PDO::PARAM_INT boleh digunakan untuk jenis integer .
Cara menggunakan pernyataan PDO yang disediakan
Sebelum menggunakan pernyataan PDO yang disediakan, anda perlu menyambung ke pangkalan data. Berikut ialah contoh kod untuk menyambung ke pangkalan data MySQL:
<?php $dsn = 'mysql:host=localhost;dbname=test'; $username = 'root'; $password = ''; try { $pdo = new PDO($dsn, $username, $password); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); exit; }
Kini setelah kami disambungkan ke pangkalan data, kami boleh mula menggunakan pernyataan yang disediakan oleh PDO. Katakan kita mempunyai jadual pengguna, yang mengandungi medan berikut: id, nama pengguna dan kata laluan.
Pertama, kita perlu menyediakan pernyataan pertanyaan. Sebagai contoh, jika kami ingin mendapatkan pengguna yang nama pengguna dan kata laluannya sepadan, kami boleh mentakrifkan pernyataan yang disediakan seperti berikut:
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
Di sini kami menggunakan titik bertindih (:) untuk menentukan pembolehubah yang ingin kami tanyakan, ":nama pengguna " dan ":kata laluan" "Semuanya adalah pembolehubah.
Seterusnya, kita perlu mengikat nilai pada pembolehubah ini. Ini boleh dilakukan melalui kaedah bindParam() atau bindValue(). bindParam() adalah lebih serba boleh, ia boleh digunakan beberapa kali sepanjang hayat pembolehubah.
$stmt->bindParam(':username', $username); $stmt->bindParam(':password', $password);
Tujuan bindValue() adalah untuk mengikat nilai kepada pembolehubah sekali Jika pembolehubah kita tidak perlu digunakan lagi, adalah disyorkan untuk menggunakan kaedah ini:
$stmt->bindValue(':username', $username); $stmt->bindValue(':password', $password);
Di sini. , $username dan $password ialah nama pengguna dan kata laluan yang ingin kami tanya.
Akhir sekali, kita perlu melaksanakan pertanyaan:
$stmt->execute(); while ($row = $stmt->fetch()) { // do something with the rows }
Kaedah fetch() mengambil keputusan pertanyaan dalam baris dan mengembalikan setiap baris sebagai tatasusunan. Kita boleh menggunakan set hasil ini dalam gelung, beroperasi pada setiap baris.
Ringkasan
Pernyataan yang disediakan oleh PDO adalah salah satu cara paling berkesan untuk mengelakkan suntikan SQL. Apabila menyediakan pertanyaan, titik bertindih digunakan untuk menentukan parameter, parameter berasingan dan melepaskan penyataan SQL. Setiap kali pernyataan yang disediakan PDO dipanggil, pangkalan data hanya perlu menyusun dan mengoptimumkan satu pertanyaan dan bukannya mengoptimumkan setiap pertanyaan, yang boleh meningkatkan kecekapan pertanyaan.
Dalam artikel ini, kami memperkenalkan cara menggunakan pernyataan yang disediakan PDO dan kaedah yang berkaitan. Ini akan menjadi petua yang sangat berguna untuk digunakan dalam aplikasi peringkat lebih tinggi atau apabila menghalang serangan suntikan SQL.
Atas ialah kandungan terperinci Ketahui cara menggunakan pernyataan yang disediakan oleh PDO. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!