ホームページ > データベース > mysql チュートリアル > 挿入/更新操作用の PDO プリペアド ステートメント ヘルパー関数を作成するにはどうすればよいですか?

挿入/更新操作用の PDO プリペアド ステートメント ヘルパー関数を作成するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-23 17:36:09
オリジナル
890 人が閲覧しました

How Can I Create a PDO Prepared Statement Helper Function for Insert/Update Operations?

挿入/更新ヘルパー関数用の 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート