Dalam bidang pengaturcaraan MySQL, kecekapan dan kejelasan kod adalah yang terpenting. Untuk menyelaraskan proses penjanaan pernyataan SQL untuk operasi sisipan atau kemas kini, fungsi pembantu boleh terbukti tidak ternilai. Artikel ini membentangkan fungsi pembantu yang memanfaatkan penyataan yang disediakan PDO untuk mencapai perkara itu.
Fungsi pembantu berikut, dbSet, membantu dalam menjana penyataan SET untuk penyataan yang disediakan PDO :
function dbSet($fields, &$values) { $set = ''; $values = array(); foreach ($fields as $field) { if (isset($_POST[$field])) { $set .= "`$field` = ?,"; $values[] = $_POST[$field]; } } return rtrim($set, ','); }
Fungsi ini mengambil tatasusunan nama medan ($medan) dan melewatinya merujuk kepada array $values, yang akan memegang nilai yang sepadan daripada permintaan POST. Fungsi menjana pernyataan SET dengan ruang letak (?) dan mengisi tatasusunan $values dengan nilai yang akan diikat pada pemegang tempat tersebut.
Berikut ialah contoh cara menggunakan pembantu fungsi:
$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>
Dalam contoh ini, tatasusunan $fields mengandungi nama medan yang akan dikemas kini dan Tatasusunan $_POST mengandungi nilai yang sepadan. Pernyataan SET yang dijana akan termasuk ruang letak untuk setiap medan, manakala tatasusunan $values akan menyimpan nilai sebenar yang akan diikat.
Semasa memasukkan data, prosesnya adalah serupa:
$query = "INSERT INTO $table SET ".dbSet($fields, $values); $dbh->prepare($query); $dbh->execute($values);
Fungsi pembantu ini menyediakan kaedah ringkas untuk menulis pernyataan PDO yang disediakan untuk operasi sisipan atau kemas kini. Dengan menghapuskan keperluan untuk parameter ikatan berulang atau tanda soal, ia meningkatkan kecekapan kod dan menjadikannya lebih mudah untuk diselenggara.
Atas ialah kandungan terperinci Bagaimanakah Fungsi Pembantu PDO Memperkemas Operasi INSERT dan KEMASKINI MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!