MySQLi是PHP中一個重要的拓展,它能夠連接、操作MySQL數據庫。相比PDO,MySQLi的效率更高,擴展性更好。MySQLi提供了面向對象的方法和面向過程的方法,在程序中我們可以根據需要選擇不同的方法。
下面是一個MySQLi面向對象連接MySQL數據庫并執行查詢操作的示例代碼:
//配置數據庫連接 $mysqli = new mysqli("localhost", "username", "password", "database_name"); //執行查詢操作 $result = $mysqli->query("SELECT * FROM users"); //循環遍歷結果集,輸出結果 while ($row = $result->fetch_assoc()) { echo "ID:" . $row['id'] . ",用戶名:" . $row['username'] . ",密碼:" . $row['password']; }
與面向對象的MySQLi不同,MySQLi還提供了面向過程的方法,下面是一個MySQLi面向過程連接MySQL數據庫并執行查詢操作的示例代碼:
//配置數據庫連接 $link = mysqli_connect("localhost", "username", "password", "database_name"); //執行查詢操作 $result = mysqli_query($link, "SELECT * FROM users"); //循環遍歷結果集,輸出結果 while ($row = mysqli_fetch_assoc($result)) { echo "ID:" . $row['id'] . ",用戶名:" . $row['username'] . ",密碼:" . $row['password']; } //關閉連接 mysqli_close($link);
除此之外,MySQLi還支持預處理語句,可以有效避免SQL注入攻擊。
//配置數據庫連接 $mysqli = new mysqli("localhost", "username", "password", "database_name"); //配置待執行的SQL查詢語句 $sql = "INSERT INTO users (username, password) VALUES (?, ?)"; //預處理語句 $stmt = $mysqli->prepare($sql); //綁定參數 $stmt->bind_param("ss", $username, $password); //設置參數的值 $username = "test_user"; $password = "123456"; //執行預處理語句 $stmt->execute(); //關閉連接 $mysqli->close();
在使用MySQLi時,需要注意以下事項:
- MySQLi只能操作MySQL數據庫,不能操作其它類型的數據庫。
- 在進行查詢語句操作時,需要保證SQL語句的正確性,以免造成數據安全問題。
- 在使用預處理語句時,需要保證傳入的參數類型和數據類型一致,否則會導致預處理失敗。
總之,MySQLi是PHP中一款高效、擴展性好的拓展,能夠為開發者提供便捷的MySQL數據庫操作。