Memahami dan Melaksanakan Penyata Disediakan mysqli
Jika anda menghadapi kesukaran menggunakan pernyataan yang disediakan mysqli, adalah penting untuk mengenal pasti punca punca isu. Mari analisa kod yang anda berikan dan atasi ralat yang dihadapi.
Dalam kod anda, anda cuba melaksanakan pernyataan yang disediakan tanpa parameter yang mengikat. Menurut mysqli::prepare dokumentasi, penanda parameter dalam pernyataan yang disediakan perlu terikat kepada pembolehubah aplikasi sebelum pelaksanaan. Untuk menyelesaikan isu ini, anda harus menggunakan mysqli_stmt_bind_param() untuk mengikat parameter sebelum melaksanakan pernyataan.
Mengenai soalan anda tentang menggunakan mysqli untuk pernyataan yang disediakan, ya, mysqli ialah sambungan yang disyorkan untuk PHP dan disokong secara meluas. Ia menawarkan fungsi yang mantap untuk mengendalikan pertanyaan SQL, termasuk penyata yang disediakan, pengikatan data dan pengurusan transaksi.
Contoh Lengkap: Sambungan, Sisipan dan Pemilihan dengan Pengendalian Ralat
Berikut ialah contoh lengkap yang menunjukkan penggunaan pernyataan yang disediakan dengan mysqli, termasuk sambungan, sisipan dan pemilihan dengan ralat pengendalian:
<?php // Establish a connection to the database $mysqli = new mysqli("localhost", "root", "root", "test"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: " . $mysqli->connect_error; exit(); } // Prepare insert statement $sql = "INSERT INTO users (name, age) VALUES (?, ?)"; $stmt = $mysqli->prepare($sql); if (!$stmt) { echo "Failed to prepare statement: " . $mysqli->error; exit(); } // Bind parameters $name = 'John Doe'; $age = 30; $stmt->bind_param("si", $name, $age); // Execute insertion if (!$stmt->execute()) { echo "Failed to execute insertion: " . $stmt->error; exit(); } // Prepare select statement $sql = "SELECT * FROM users WHERE name = ?"; $stmt = $mysqli->prepare($sql); if (!$stmt) { echo "Failed to prepare statement: " . $mysqli->error; exit(); } // Bind parameter $name = 'John Doe'; $stmt->bind_param("s", $name); // Execute selection if (!$stmt->execute()) { echo "Failed to execute selection: " . $stmt->error; exit(); } // Get result $result = $stmt->get_result(); if (!$result) { echo "Failed to get result: " . $stmt->error; exit(); } // Iterate through the result and display data while ($row = $result->fetch_assoc()) { echo "ID: " . $row['id'] . ", Name: " . $row['name'] . ", Age: " . $row['age'] . "\n"; } // Close the statement and connection $stmt->close(); $mysqli->close(); ?>
Kod ini mewujudkan sambungan ke pangkalan data, menyediakan sisipan dan pilih pernyataan, mengikat parameter, melaksanakan pertanyaan dan mengendalikan ralat dengan sewajarnya. Ia mempamerkan aliran kerja lengkap menggunakan pernyataan yang disediakan dengan mysqli.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Penyata Disediakan mysqli dalam PHP dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!