PDO を使用したヘルパー関数の挿入/更新: 多用途のソリューション
データベースの対話を扱う場合、効率的かつ柔軟なメソッドを用意することが重要です。データの操作。 MySQL ドライバーを使用する従来のアプローチでは、SET ステートメントを手動で作成する必要がある場合があり、これは面倒でエラーが発生しやすい可能性があります。ただし、PDO プリペアド ステートメントを利用すると、より堅牢で安全なソリューションが提供されます。
PDO プリペアド ステートメントの概要
PDO プリペアド ステートメントを使用すると、SQL を保護しながら SQL クエリを実行できます。注射攻撃。これには、クエリを 1 回準備して複数回実行し、さまざまな値をクエリ パラメータにバインドすることが含まれます。プリペアド ステートメントを使用すると、手動で文字列を連結する必要がなくなり、データ改ざんのリスクを最小限に抑えることができます。
挿入関数と更新関数で PDO プリペアド ステートメントを使用する
するには挿入/更新ヘルパー関数で PDO プリペアド ステートメントを利用すると、次のことが利用できます。手順:
例コード
次に、PDO プリペアド ステートメントを使用する dbSet() 関数の例を示します。
function dbSet($fields, &$values) { $set = ''; $values = array(); foreach ($fields as $field) { if (isset($_POST[$field])) { $set .= "`$field` = ?,"; $values[] = $_POST[$field]; } } return rtrim($set, ','); }
この関数を使用すると、次のように更新クエリを実行できます。
$fields = explode(" ", "name surname lastname address zip fax phone date"); $_POST['date'] = $_POST['y']."-".$_POST['m']."-"$_POST['d']; $query = "UPDATE $table SET ".dbSet($fields, $values).", stamp=NOW() WHERE>
追加考慮事項
より包括的なソリューションについては、Doctrine のような ORM の利用を検討してください。このようなフレームワークは、オブジェクト リレーショナル マッピングを提供し、簡略化された CRUD 操作など、データベースと対話するためのさらに使いやすいインターフェイスを提供します。 ORM を使用すると、モデル オブジェクトに入力データを設定し、save() メソッドを呼び出して変更をデータベースに保存するだけで済みます。
以上がPDO 準備済みステートメントを使用して多用途の挿入/更新ヘルパー関数を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。