


Cara Menggunakan Kenyataan yang Disediakan dengan Mysqli
Jul 11, 2025 am 12:17 AMKenyataan yang disediakan di MySQLI menghalang suntikan SQL dan meningkatkan kecekapan dengan memisahkan logik SQL dari input data. Untuk menggunakannya dengan berkesan: 1) Sambungkan ke pangkalan data, 2) Sediakan pernyataan SQL dengan ruang letak, 3) mengikat parameter dengan betul mengikut jenis (s untuk rentetan, saya untuk integer, dll.), 4) Melaksanakan pernyataan, 5) mengambil keputusan dengan selamat menggunakan bind_result () untuk pilihan pilihan, dan 6) Kesalahan biasa termasuk parameter yang salah mengikat, gagal memeriksa jika menyediakan () mengembalikan palsu, dan tidak menetapkan semula pembolehubah semasa gelung, tetapi mengikuti amalan terbaik memastikan kod yang selamat dan dikekalkan.
當你 'Bekerja dengan pangkalan data dalam PHP, menggunakan pernyataan yang disediakan dengan MySQLI adalah salah satu cara terbaik untuk memastikan aplikasi anda selamat dan cekap. Mereka membantu mencegah suntikan SQL dengan memisahkan logik SQL dari input data.

Inilah cara menggunakan kenyataan yang disediakan dengan MySQLI dengan berkesan.
Apakah penyataan yang disediakan?
Kenyataan yang disediakan adalah ciri dalam mysqli yang membolehkan anda menulis pertanyaan SQL sekali dan kemudian melaksanakannya beberapa kali dengan parameter yang berbeza. Daripada membina pertanyaan dengan menggabungkan rentetan (yang boleh berbahaya), anda menyediakan templat dan mengikat pembolehubah kepada ruang letak.

Kaedah ini memastikan bahawa input pengguna sentiasa dianggap sebagai data, bukan kod yang boleh dilaksanakan.
Cara Menggunakan Kenyataan yang Disediakan dengan Mysqli
Menggunakan pernyataan yang disediakan melibatkan beberapa langkah yang jelas:

- Sambungkan ke pangkalan data
- Sediakan penyataan SQL
- Mengikat parameter
- Melaksanakan pernyataan
- Dapatkan Keputusan (jika diperlukan)
- Tutup kenyataan
Mari berjalan melalui contoh asas:
// 1. Sambungkan ke pangkalan data $ mysqli = mysqli baru ("localhost", "nama pengguna", "kata laluan", "pangkalan data"); // Sambungan periksa jika ($ mysqli-> connect_error) { mati ("Sambungan gagal:". $ mysqli-> connect_error); } // 2. Sediakan pernyataan SQL $ stmt = $ mysqli-> Sediakan ("masukkan ke pengguna (nama, e-mel) nilai (?,?)"); // 3. $ stmt-> bind_param ("ss", $ nama, $ e-mel); // 4. Tetapkan nilai dan laksanakan $ name = "John Doe"; $ email = "john@example.com"; $ stmt-> Execute (); echo "rekod dimasukkan dengan jayanya."; // 6. Tutup pernyataan dan sambungan $ stmt-> tutup (); $ mysqli-> tutup ();
Anda juga boleh menggunakan pendekatan ini untuk SELECT
, UPDATE
, dan DELETE
operasi.
Parameter mengikat dengan betul
Salah satu bahagian yang paling penting menggunakan pernyataan yang disediakan ialah mengikat pembolehubah anda dengan betul. Fungsi bind_param()
mengambil rentetan jenis diikuti oleh pembolehubah.
-
"s"
untuk rentetan -
"i"
untuk Integer -
"d"
untuk dua kali ganda -
"b"
untuk gumpalan
Pastikan bilangan dan jenis pembolehubah sepadan dengan ruang letak dalam pertanyaan SQL anda.
Contohnya:
$ stmt = $ mysqli-> Sediakan ("pilih id dari pengguna di mana nama =? dan umur>?"); $ stmt-> bind_param ("si", $ nama, $ usia);
Dalam kes ini, parameter pertama ( $name
) adalah rentetan, dan yang kedua ( $age
) adalah integer.
Jika anda mendapat salah ini, pertanyaan anda mungkin tidak berkelakuan seperti yang diharapkan atau boleh gagal dengan senyap.
Mengambil keputusan dengan selamat
Apabila mengambil data dengan pertanyaan SELECT
, anda perlu mengikat pembolehubah hasil sebelum mengambilnya. Inilah Caranya:
$ stmt = $ mysqli-> Sediakan ("pilih id, nama dari pengguna di mana id =?"); $ stmt-> bind_param ("i", $ user_id); $ stmt-> Execute (); $ stmt-> bind_result ($ id, $ name); manakala ($ stmt-> fetch ()) { echo "id: $ id, nama: $ name <br>"; } $ stmt-> tutup ();
Kaedah bind_result()
mengikat lajur hasil kepada pembolehubah supaya anda dapat mengaksesnya dengan selamat dalam gelung.
Ini menjadikan segala -galanya bersih dan mengelakkan pengendalian array yang tidak kemas seperti dengan panggilan mysqli_query()
.
Kesilapan biasa untuk dielakkan
Terdapat beberapa perangkap yang sering dijalankan oleh orang ketika menggunakan pernyataan yang disediakan:
- Lupa untuk memeriksa sama ada
prepare()
pulangan palsu - Tidak menutup pernyataan selepas digunakan
- Jenis yang tidak betul atau terlalu banyak/beberapa pembolehubah
- Menggunakan nama pemboleh ubah yang sama merentasi pelbagai hukuman mati secara tidak sengaja
Amalan yang baik adalah untuk sentiasa memeriksa nilai pulangan prepare()
:
jika (! $ stmt = $ mysqli-> menyediakan ("pilih ...")) { mati ("Sediakan gagal:". $ mysqli-> ralat); }
Juga, jika anda melengkung melalui pelbagai set data, pastikan untuk menetapkan semula atau mengikat semula pembolehubah dengan betul setiap kali.
Itulah pada dasarnya bagaimana untuk bekerja dengan pernyataan yang disediakan menggunakan MySQLI. Ia lebih sedikit kod daripada kaedah sekolah lama, tetapi ia lebih selamat dan lebih mudah untuk dikekalkan dalam jangka masa panjang.
Atas ialah kandungan terperinci Cara Menggunakan Kenyataan yang Disediakan dengan Mysqli. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apabila menulis aplikasi web menggunakan PHP, pangkalan data MySQL sering digunakan untuk menyimpan data. PHP menyediakan cara untuk berinteraksi dengan pangkalan data MySQL yang dipanggil MySQLi. Walau bagaimanapun, kadangkala apabila menggunakan MySQLi, anda akan menemui mesej ralat, seperti yang ditunjukkan di bawah: PHPFatalerror:Calltoundefinedfunctionmysqli_connect() Mesej ralat ini bermakna PHP tidak dapat mencari saya

PDOPDO ialah lapisan abstraksi akses pangkalan data berorientasikan objek yang menyediakan antara muka bersatu untuk PHP, membolehkan anda menggunakan kod yang sama untuk berinteraksi dengan pangkalan data yang berbeza (seperti Mysql, postgresql, oracle). PDO menyembunyikan kerumitan sambungan pangkalan data asas dan memudahkan operasi pangkalan data. Kebaikan dan Kelemahan Kelebihan: Antara muka bersatu, menyokong berbilang pangkalan data, memudahkan operasi pangkalan data, mengurangkan kesukaran pembangunan, menyediakan penyata yang disediakan, meningkatkan keselamatan, menyokong pemprosesan transaksi Kelemahan: prestasi mungkin lebih rendah sedikit daripada sambungan asli, bergantung pada perpustakaan luaran, mungkin meningkatkan overhed, kod demo menggunakan PDO Sambung ke pangkalan data mysql: $db=newPDO("mysql:host=localhost;dbnam

Jika anda menghadapi mesej ralat berikut semasa menggunakan PHP untuk menyambung ke pangkalan data MySQL: PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused, maka anda boleh cuba menyelesaikan masalah ini dengan mengikuti langkah di bawah. Untuk mengesahkan sama ada perkhidmatan MySQL berjalan seperti biasa, anda harus terlebih dahulu menyemak sama ada perkhidmatan MySQL berjalan seperti biasa Jika perkhidmatan tidak berjalan atau gagal dimulakan, ia boleh menyebabkan ralat ditolak sambungan. boleh awak

Penyelesaian kepada PHP tidak dapat menyambung ke mysqli: 1. Buka fail "php.ini"; 2. Cari "mysqli.reconnect"; 3. Tukar "mysqli.reconnect = OFF" kepada "mysqli.reconnect = on".

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Fail mysql yang sedang dijalankan ialah mysqld ialah fail boleh laku, yang mewakili program pelayan Mysql secara langsung boleh memulakan proses pelayan dan mysqld_safe adalah skrip permulaan, yang secara tidak langsung akan memanggil mysqld .

Apabila menggunakan sambungan mysqli untuk menyambung dan mengendalikan pangkalan data MySQL, anda kadangkala menghadapi ralat PHPFatalerror:Calltoundefinedmethodmysqli::prepare(). Ralat ini biasanya disebabkan oleh sebab-sebab berikut: PHP mempunyai sokongan yang tidak mencukupi untuk sambungan mysqli tidak dimuatkan atau dikonfigurasikan dengan betul terdapat ralat sintaks dalam kod PHP tidak dikonfigurasikan atau berjalan dengan betul;

Apabila membangunkan laman web menggunakan PHP, operasi pangkalan data adalah sangat biasa. MySQLi ialah sambungan yang biasa digunakan dalam PHP untuk mengendalikan pangkalan data MySQL Ia menyediakan antara muka berorientasikan objek yang agak lengkap, antara muka prosedur dan menyokong operasi pernyataan yang disediakan. Tetapi kadangkala apabila kita menggunakan pernyataan yang disediakan mysqli, kita akan menghadapi ralat sedemikian: PHPFatalerror:Calltoundefinedfunctionmysqli_stmt_bin
