Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mencipta Fungsi Pembantu Penyata Disediakan PDO untuk Operasi Sisipan/Kemas Kini?

Bagaimanakah Saya Boleh Mencipta Fungsi Pembantu Penyata Disediakan PDO untuk Operasi Sisipan/Kemas Kini?

Susan Sarandon
Susan Sarandonasal
2024-12-23 17:36:09900semak imbas

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

Penyata Disediakan PDO untuk Fungsi Sisipan/Kemas Kini Pembantu

Dalam senario pemacu MySQL tradisional, fungsi dbSet() ialah alat yang berharga untuk menjana penyataan SET. Walau bagaimanapun, apabila menggunakan penyataan yang disediakan PDO, pendekatan yang sama diperlukan untuk mengekalkan kekeringan dan fleksibiliti kod.

Fungsi Pembantu Penyata Disediakan PDO

Fungsi pembantu berikut, dbSet( ), boleh digunakan untuk mencapai ini:

function dbSet($fields, &$values) {
    $set = '';
    $values = array();

    foreach ($fields as $field) {
        if (isset($_POST[$field])) {
            $set .= "`$field` = ?,";
            $values[] = $_POST[$field];
        }
    }

    return rtrim($set, ',');
}

Penggunaan

Pertimbangkan contoh berikut:

$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 Alternatif

Untuk penyelesaian yang lebih komprehensif, pertimbangkan untuk menggunakan rangka kerja ORM (pemetaan hubungan objek) seperti Doktrin. Dengan ORM, populasi data boleh dipermudahkan dengan ketara:

$table = new Table();
$table->fromArray($_POST);
$table->save();

Kelas Sambungan PDO

Untuk penyelesaian tersuai, mencipta kelas sambungan PDO boleh menyediakan cara yang mudah untuk mengendalikan pertanyaan pernyataan yang disediakan dengan cekap, mengurangkan keperluan untuk panggilan verbose bind_param().

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Fungsi Pembantu Penyata Disediakan PDO untuk Operasi Sisipan/Kemas Kini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn