Rumah >pangkalan data >tutorial mysql >Mengapa Sisipan MySQLi Saya Gagal Walaupun Lulus Semua Pemeriksaan Nyahpepijat?

Mengapa Sisipan MySQLi Saya Gagal Walaupun Lulus Semua Pemeriksaan Nyahpepijat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-15 17:55:02302semak imbas

Why is My MySQLi Insertion Failing Despite Passing All Debug Checks?

Memasukkan Data menggunakan MySQLi

Kod ini nampaknya sedang melaksanakan semua semakan nyahpepijat, tetapi ia gagal memasukkan data baharu ke dalam pangkalan data. Mari kita analisa langkah demi langkah.

Kod cuba menyemak sama ada "nama pengguna" sudah wujud dalam jadual "UserData". Jika tidak, ia cuba menambah baris baharu. Walau bagaimanapun, ia menghadapi isu semasa bahagian sisipan.

Mengenal pasti Isu

Masalahnya terletak pada cara parameter bind diisytiharkan untuk pernyataan sisipan. Daripada menghantar pembolehubah individu berbilang kali (cth., $nama pengguna, $kata laluan dua kali), ia harus dihantar bersama-sama dengan jenis yang sepadan.

Penyelesaian

Fungsi bind_param menjangkakan jenis pembolehubah mendahului pembolehubah itu sendiri. Oleh itu, cara yang betul untuk mengikat parameter ialah:

$stmt2->bind_param('ss', $username, $password);

Sebagai alternatif, jika anda menggunakan PHP 5.6 atau lebih baru, anda boleh memudahkan ini menggunakan operator spread (...):

$data = ['user' => 'someUser', 'password' => 'secret'];
$stmt2->bind_param('ss', ...$data);

Setelah parameter diikat dengan betul, sisipan akan berjaya. Ambil perhatian bahawa kod yang disediakan dalam soalan anda mempunyai beberapa ulasan yang berkemungkinan mengelirukan atau tidak diperlukan; mengalih keluarnya untuk kejelasan adalah disyorkan.

Atas ialah kandungan terperinci Mengapa Sisipan MySQLi Saya Gagal Walaupun Lulus Semua Pemeriksaan Nyahpepijat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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