


Penyata Disediakan Selamat dalam PHP untuk MySQL
Apabila bekerja dengan MySQL dan PHP, menggunakan pernyataan yang disediakan adalah penting untuk memastikan keselamatan pangkalan data anda pertanyaan. Pernyataan yang disediakan mempertahankan terhadap serangan suntikan SQL dengan memisahkan pernyataan SQL daripada input yang disediakan pengguna.
Mencipta Kenyataan Disediakan Selamat
Untuk mencipta pernyataan yang disediakan dengan selamat, kami' akan menggunakan coretan kod berikut:
$db = new mysqli("host", "user", "pw", "database"); $stmt = $db->prepare("SELECT * FROM mytable where userid=? AND category=? ORDER BY id DESC"); $stmt->bind_param('ii', intval($_GET['userid']), intval($_GET['category']));
Menjelaskan Kod
- Buat sambungan: Cipta objek sambungan MySQL ($db) menggunakan kelas mysqli.
- Sediakan pernyataan: Gunakan kaedah prepare() pada objek sambungan untuk menyediakan pernyataan SQL. Pemegang tempat (?) mewakili parameter yang akan digantikan dengan input pengguna kemudian.
- Ikat parameter: Gunakan kaedah bind_param() untuk mengikat parameter yang disediakan pengguna (dalam kes ini, $_GET ['userid'] dan $_GET['category']) kepada ruang letak dalam yang disediakan penyata.
Mendapatkan Data
Selepas menyediakan pernyataan, anda boleh melaksanakannya, mendapatkan data dan mengulangi hasil:
$stmt->execute(); $stmt->store_result(); $stmt->bind_result($column1, $column2, $column3); while ($stmt->fetch()) { echo "col1=$column1, col2=$column2, col3=$column3 \n"; }
Tatasusunan Bersekutu untuk Kemudahan
Untuk mendapatkan semula data sebagai tatasusunan bersekutu (cth., untuk pertanyaan SELECT *), anda boleh menggunakan fungsi berikut:
function stmt_bind_assoc(&$stmt, &$out) { $data = mysqli_stmt_result_metadata($stmt); $fields = array(); $out = array(); $fields[0] = $stmt; $count = 1; while ($field = mysqli_fetch_field($data)) { $fields[$count] = &$out[$field->name]; $count++; } call_user_func_array(mysqli_stmt_bind_result, $fields); }
Fungsi ini membolehkan anda mengikat keputusan kepada tatasusunan bersekutu, menjadikannya lebih mudah untuk digunakan dalam kod anda:
$stmt->store_result(); $resultrow = array(); stmt_bind_assoc($stmt, $resultrow); while ($stmt->fetch()) { print_r($resultrow); }
Prestasi Pertimbangan
Walaupun kenyataan yang disediakan direka untuk meningkatkan prestasi, penggunaannya beberapa kali pada halaman mungkin tidak menghasilkan keuntungan yang ketara. Walau bagaimanapun, jika aplikasi anda menjalankan operasi pangkalan data dengan kerap, menyediakan penyata boleh menghasilkan peningkatan yang ketara dalam masa tindak balas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Penyata Yang Disediakan dengan Selamat dalam PHP untuk Menyoal Pangkalan Data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

Artikel membincangkan menggunakan kunci asing untuk mewakili hubungan dalam pangkalan data, memberi tumpuan kepada amalan terbaik, integriti data, dan perangkap umum untuk dielakkan.

Artikel ini membincangkan membuat indeks pada lajur JSON dalam pelbagai pangkalan data seperti PostgreSQL, MySQL, dan MongoDB untuk meningkatkan prestasi pertanyaan. Ia menerangkan sintaks dan faedah mengindeks laluan JSON tertentu, dan menyenaraikan sistem pangkalan data yang disokong.

Artikel membincangkan mendapatkan MySQL terhadap suntikan SQL dan serangan kekerasan menggunakan pernyataan yang disediakan, pengesahan input, dan dasar kata laluan yang kuat. (159 aksara)


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna