與 PHP 資料庫互動的最佳實踐:使用準備語句以防止 SQL 注入攻擊並提高效能。使用事務以確保一組操作要么全部成功,要么全部失敗。處理錯誤以檢查錯誤並採取適當措施。釋放資源以釋放與結果和語句相關聯的資源。
PHP 函數與資料庫互動的最佳實踐
在 PHP 中與資料庫互動是一項常見的任務。為了確保效能、安全性和可維護性,遵循一些最佳實踐至關重要。
1. 使用準備語句
準備語句可以防止 SQL 注入攻擊並提高效能。它們透過在查詢執行前將參數綁定到 SQL 語句來運作。
1 2 3 4 5 6 7 8 | $stmt = $mysqli ->prepare( "SELECT * FROM users WHERE name = ?" );
$stmt ->bind_param( "s" , $name );
$stmt ->execute();
|
登入後複製
2. 使用事務
事務確保一組操作要麼全部成功,要麼全部失敗。它們在需要確保資料一致性時很有用。
1 2 3 4 5 6 7 8 9 10 11 12 13 | $mysqli ->begin_transaction();
$mysqli ->query( "INSERT INTO orders (product_id, quantity) VALUES (100, 5)" );
$mysqli ->query( "UPDATE products SET stock = stock - 5 WHERE id = 100" );
if ( $mysqli ->error) {
$mysqli ->rollback();
} else {
$mysqli ->commit();
}
|
登入後複製
3. 處理錯誤
PHP 提供了多種函數來處理 MySQL 錯誤。始終檢查錯誤並根據需要採取適當的措施。
1 2 3 | if ( $mysqli ->error) {
echo "Error: " . $mysqli ->error;
}
|
登入後複製
4. 釋放資源
查詢完成後,釋放與結果和語句相關聯的資源非常重要。
1 2 3 4 5 | $result ->close();
$stmt ->close();
|
登入後複製
實戰案例:取得使用者資料
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $stmt = $mysqli ->prepare( "SELECT * FROM users WHERE id = ?" );
$stmt ->bind_param( "i" , $id );
$stmt ->execute();
$result = $stmt ->get_result();
while ( $row = $result ->fetch_assoc()) {
echo $row [ 'name' ] . "<br>" ;
}
$result ->close();
$stmt ->close();
|
登入後複製
遵循這些最佳實踐可以幫助你編寫健全、安全且可維護的 PHP 程式碼,以與資料庫互動。
以上是PHP 函數與資料庫互動的最佳實務有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!