挿入/更新ヘルパー関数用の PDO プリペアド ステートメント
従来の MySQL ドライバー シナリオでは、dbSet() 関数は、 SET ステートメント。ただし、PDO プリペアド ステートメントを利用する場合、コードの簡潔さと柔軟性を維持するには同様のアプローチが必要です。
PDO プリペアド ステートメント ヘルパー関数
次のヘルパー関数 dbSet( )を達成するために利用できますthis:
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>
ORM 代替
より包括的なソリューションについては、ORM の採用を検討してくださいDoctrine などの (オブジェクト リレーショナル マッピング) フレームワーク。 ORM を使用すると、データ入力を大幅に簡素化できます。
$table = new Table(); $table->fromArray($_POST); $table->save();
PDO 拡張クラス
カスタマイズされたソリューションの場合、PDO 拡張クラスを作成すると、プリペアドステートメントクエリを効率的に処理し、冗長なbind_param()呼び出しの必要性を減らします。
以上が挿入/更新操作用の PDO プリペアド ステートメント ヘルパー関数を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。