Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengoptimumkan Penggunaan Penyata Disediakan dalam PHP dengan MySQLi?
Penggunaan Penyata Disediakan Dioptimumkan dalam PHP dengan MySQLi
Kod anda nampaknya tiada pengikatan parameter pada pernyataan yang disediakan. Mengikut dokumentasi mysqli::prepare, penanda parameter mesti diikat sebelum melaksanakan pernyataan.
// Bind parameters for the first insertion $name1 = 'one'; $age1 = 1; $stmt->bind_param('si', $name1, $age1); // Execute for the first insertion $stmt->execute(); // Bind parameters for the second insertion $name2 = 'two'; $age2 = 1; $stmt->bind_param('si', $name2, $age2); // Execute for the second insertion $stmt->execute();
Kelebihan mysqli
Walaupun mysqli bukan satu-satunya perpustakaan yang menyokong kenyataan yang disediakan, ia menawarkan beberapa kelebihan:
Contoh Lengkap dengan Pengendalian Ralat
Berikut ialah contoh lengkap menggunakan pernyataan yang disediakan dalam PHP dengan MySQLi, termasuk ralat pengendalian:
// Database connection $mysqli = new mysqli("localhost", "root", "root", "test"); if ($mysqli->connect_errno) { echo "Failed to connect: " . $mysqli->connect_error; exit; } // Prepare statement $stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)"); if (!$stmt) { echo "Prepare failed: " . $mysqli->error; exit; } // Bind parameters for the first insertion $name1 = 'one'; $age1 = 1; $stmt->bind_param('si', $name1, $age1); // Execute for the first insertion $stmt->execute(); if ($stmt->errno) { echo "Execution failed: " . $stmt->error; exit; } // Bind parameters for the second insertion $name2 = 'two'; $age2 = 1; $stmt->bind_param('si', $name2, $age2); // Execute for the second insertion $stmt->execute(); if ($stmt->errno) { echo "Execution failed: " . $stmt->error; exit; } // Selection statement $stmt = $mysqli->prepare("SELECT * FROM users WHERE age = ?"); if (!$stmt) { echo "Prepare failed: " . $mysqli->error; exit; } // Bind parameters for selection $age = 1; $stmt->bind_param('i', $age); // Execute selection $stmt->execute(); if ($stmt->errno) { echo "Execution failed: " . $stmt->error; exit; } // Fetch results $result = $stmt->get_result(); if (!$result) { echo "Fetch failed: " . $stmt->error; exit; } while ($row = $result->fetch_assoc()) { echo $row['name'] . " " . $row['age'] . "<br>"; }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Penggunaan Penyata Disediakan dalam PHP dengan MySQLi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!