Menggunakan Penyata Disediakan mysqli
Bermula dengan Penyata Disediakan
Anda cuba untuk gunakan pernyataan yang disediakan, tetapi kod anda menghadapi ralat. Isu ini berpunca daripada langkah yang tiada: mengikat parameter pada pernyataan yang disediakan.
Parameter Pengikat
Pernyataan yang disediakan memerlukan anda mengikat parameter sebelum melaksanakan. Proses ini mengaitkan pembolehubah luaran dengan ruang letak (?) dalam pertanyaan SQL.
$name = 'one'; $age = 1; $stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)"); // Bind parameters (typehint: string, integer) $stmt->bind_param('si', $name, $age); // Now you can execute $stmt->execute();
Adakah saya Memerlukan mysqli untuk Penyata Disediakan?
Ya, mysqli diperlukan untuk kenyataan yang disediakan.
Lengkap Contoh
Sambungan:
$mysqli = new mysqli("localhost", "root", "root", "test"); if ($mysqli->connect_errno) { echo "Connection failed: " . $mysqli->connect_error; }
Sisipan:
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)"); // Bind parameters (typehint: string, integer) $stmt->bind_param('si', $name, $age); // Insert row $stmt->execute();
Pilihan dengan Ralat Pengendalian:
$stmt = $mysqli->prepare("SELECT * FROM users WHERE name = ?"); $stmt->bind_param('s', $name); $stmt->execute(); if ($stmt->errno) { echo "Error: " . $stmt->error; } else { $result = $stmt->get_result(); } // Process result
Atas ialah kandungan terperinci Mengapa Penyata Disediakan mysqli Saya Gagal, dan Bagaimana Saya Boleh Mengikat Parameter Dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!