理解與實作mysqli 預備語句
如果您在使用mysqli 預備語句時遇到困難,則必須找出問題的根本原因。問題。讓我們分析您提供的程式碼並解決遇到的錯誤。
在您的程式碼中,您嘗試在不綁定參數的情況下執行準備好的語句。根據 mysqli::prepare 文檔,準備好的語句中的參數標記需要在執行之前綁定到應用程式變數。要解決此問題,您應該在執行語句之前使用 mysqli_stmt_bind_param() 綁定參數。
關於使用 mysqli 進行準備語句的問題,是的,mysqli 是 PHP 的推薦擴展,並且得到了廣泛支持。它提供了處理 SQL 查詢的強大功能,包括準備好的語句、資料綁定和事務管理。
完整範例:帶有錯誤處理的連接、插入和選擇
這是一個完整的範例,示範了 mysqli中預準備語句的使用,包括連接、插入和帶錯誤的選擇處理:
<?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(); ?>
此程式碼建立與資料庫的連接,準備插入和選擇語句,綁定參數,執行查詢並相應地處理錯誤。它展示了使用 mysqli 準備好的語句的完整工作流程。
以上是如何在 PHP 中有效使用 mysqli 預準備語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!