PHP データベースと対話するためのベスト プラクティス: プリペアド ステートメントを使用して、SQL インジェクション攻撃を防止し、パフォーマンスを向上させます。トランザクションを使用して、一連の操作がすべて成功するか、すべて失敗するかを確認します。エラーを処理してエラーを確認し、適切なアクションを実行します。 「リソースを解放」: 結果とステートメントに関連付けられたリソースを解放します。
PHP 関数がデータベースと対話するためのベスト プラクティス
PHP でのデータベースとの対話は一般的なタスクです。パフォーマンス、セキュリティ、保守性を確保するには、いくつかのベスト プラクティスに従うことが重要です。
1. プリペアド ステートメントを使用する
プリペアド ステートメントを使用すると、SQL インジェクション攻撃を防止し、パフォーマンスを向上させることができます。これらは、クエリが実行される前にパラメータを SQL ステートメントにバインドすることによって機能します。
// 准备语句 $stmt = $mysqli->prepare("SELECT * FROM users WHERE name = ?"); // 绑定参数 $stmt->bind_param("s", $name); // 执行语句 $stmt->execute();
2. トランザクションを使用する
トランザクションは、一連の操作がすべて成功するかすべて失敗することを保証します。これらは、データの一貫性を確保する必要がある場合に役立ちます。
// 开始事务 $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 エラーを処理するためのさまざまな関数を提供します。常にエラーをチェックし、必要に応じて適切な措置を講じてください。
if ($mysqli->error) { echo "Error: " . $mysqli->error; }
4. リソースの解放
クエリが完了したら、結果とステートメントに関連付けられたリソースを解放することが非常に重要です。
// 释放查询结果 $result->close(); // 释放语句 $stmt->close();
実用的な例: ユーザー データの取得
// 准备语句 $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 中国語 Web サイトの他の関連記事を参照してください。