Rumah  >  Artikel  >  pangkalan data  >  Mengapa Penyata MySQLi INSERT Saya Tidak Mengemas kini Pangkalan Data?

Mengapa Penyata MySQLi INSERT Saya Tidak Mengemas kini Pangkalan Data?

Linda Hamilton
Linda Hamiltonasal
2024-11-20 00:55:03542semak imbas

Why Isn't My MySQLi INSERT Statement Updating the Database?

Memasukkan Data menggunakan MySQLi

Apabila cuba memasukkan data menggunakan MySQLi, anda mungkin menghadapi senario di mana kod tidak mengemas kini pangkalan data walaupun ketiadaan ralat semasa penyahpepijatan. Dalam soalan ini, pengguna menghadapi isu ini dengan kod berikut:

$stmt2 = $conn->prepare("INSERT INTO UserData (username, password) VALUES (?, ?)");
$username = /* $_POST["username"] */ "hi";
$password = /* $_POST["password"] */ "hey";
$stmt2->bind_param('s', $username);
$stmt2->bind_param('s', $password);
$stmt2->execute();

Isu ini berpunca daripada penggunaan bind_param() yang salah. Daripada mengikat setiap pembolehubah secara individu, ia harus dilakukan sekaligus menggunakan sintaks yang betul. Kod yang diperbetulkan ialah:

$stmt2 = $conn->prepare("INSERT INTO UserData (username, password) VALUES (?, ?)");
$username = /* $_POST["username"] */ "hi";
$password = /* $_POST["password"] */ "hey";
$stmt2->bind_param('ss', $username, $password);
$stmt2->execute();

Selain itu, menggunakan PHP 5.6 atau lebih baru, operator spread (...) boleh memudahkan sintaks dengan lebih jauh lagi:

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

Atas ialah kandungan terperinci Mengapa Penyata MySQLi INSERT Saya Tidak Mengemas kini Pangkalan Data?. 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