Saat menulis pembuatan halaman di PHP, saya sering menemukan diri saya menulis satu set file yang dikotori dengan query database. Misalnya, saya mungkin memiliki kueri untuk mengambil beberapa data tentang kiriman langsung dari database untuk ditampilkan pada halaman, seperti ini:
$statement = $db->prepare('SELECT * FROM posts WHERE id=:id');
$statement->bindValue(':id', $id, PDO::PARAM_INT);
$statement->execute();
$post = $statement->fetch(PDO::FETCH_ASSOC);
$content = $post['content']
// do something with the content
Pertanyaan cepat dan sekali saja ini biasanya kecil, tetapi saya terkadang berakhir dengan sebagian besar kode interaksi basis data yang mulai terlihat sangat berantakan.
Dalam beberapa kasus, saya telah memecahkan masalah ini dengan membuat pustaka fungsi sederhana untuk menangani kueri db terkait postingan saya, memperpendek blok kode menjadi sederhana:
$content = post_get_content($id);
Dan itu bagus. Atau setidaknya sampai saya perlu melakukan sesuatu yang lain. Mungkin saya perlu mendapatkan lima posting terbaru untuk ditampilkan dalam daftar. Yah, saya selalu bisa menambahkan fungsi lain:
$recent_posts = post_get_recent(5);
foreach ($recent_posts as $post) { ... }
Tapi itu akhirnya menggunakan SELECT *
kueri, yang biasanya sebenarnya tidak saya butuhkan, tetapi seringkali terlalu rumit untuk abstrak. Saya akhirnya berakhir dengan perpustakaan besar fungsi interaksi database untuk setiap kasus penggunaan tunggal, atau serangkaian pertanyaan berantakan di dalam kode setiap halaman. Dan bahkan setelah saya membangun perpustakaan ini, saya akan merasa perlu melakukan satu join kecil yang belum pernah saya gunakan sebelumnya, dan tiba-tiba saya perlu menulis fungsi lain yang sangat terspesialisasi untuk melakukan pekerjaan itu.
Tentu, saya bisa menggunakan fungsi untuk kasus penggunaan umum dan permintaan untuk interaksi tertentu, tetapi segera setelah saya mulai menulis permintaan mentah saya mulai menyelinap kembali ke akses langsung untuk semuanya. Entah itu, atau saya akan malas dan akan mulai melakukan hal-hal dalam loop PHP yang benar-benar harus dilakukan secara langsung dalam permintaan MySQL.
Saya ingin bertanya kepada mereka yang lebih berpengalaman dalam menulis aplikasi internet: apakah peningkatan rawatan sebanding dengan baris kode tambahan dan kemungkinan inefisiensi yang mungkin diperkenalkan oleh abstraksi? Atau hanya menggunakan string kueri langsung metode yang dapat diterima untuk menangani interaksi database?
select
s - si Anda hanya perlu memanggil prosedur seperti itu dengan beberapa parameter yang Anda butuhkan