Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Real-World OOP dengan PHP dan MySQL

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Ari Gustiawan (you can also view the original English article)

Banyak contoh dari robot untuk bicycles telah ditawarkan sebagai "mudah" penjelasan yang OOP. Aku telah memilih untuk menunjukkan kepada Anda bagaimana OOP bekerja dengan contoh real-life, untuk programmer. Dengan membuat kelas MySQL CRUD Anda dapat dengan mudah create, read, update dan delete entri di salah satu proyek Anda, terlepas dari bagaimana database dirancang.


Menyiapkan skeleton kelas kami cukup sederhana sekali kita mencari tahu persis apa yang kita butuhkan. Pertama kita perlu memastikan bahwa kita dapat melakukan fungsi MySQL dasar kami. Untuk melakukan ini, kita perlu fungsi-fungsi berikut:

  • Select
  • Insert
  • Delete
  • Update
  • Connect
  • Disconnect

Mereka tampak cukup mendasar, tetapi saya yakin bahwa ketika kita pergi, kita akan melihat bahwa banyak dari mereka memanfaatkan beberapa aspek yang serupa, sehingga kami mungkin harus membuat lebih kelas. Berikut adalah apa definisi kelas Anda akan terlihat seperti. Perhatikan bahwa saya membuat yakin bahwa metode yang diciptakan dengan public keyword.

connect() fungsi

Fungsi ini akan cukup mendasar, tetapi menciptakan itu akan memerlukan kita untuk pertama kali membuat beberapa variabel. Karena kami ingin memastikan bahwa mereka tidak dapat diakses dari luar kelas kami, kami akan menetapkan mereka sebagai private. Variabel ini akan digunakan untuk menyimpan host, username, password dan database untuk sambungan. Karena mereka cukup banyak akan tetap konstan sepanjang, kita bahkan tidak perlu untuk menciptakan metode pengubah atau aksesor untuk itu. Setelah itu, kita hanya perlu membuat statement sederhana mysql untuk menyambung ke database. Tentu saja, sejak sebagai programmer kami selalu harus menganggap pengguna (bahkan jika itu adalah kita) akan melakukan sesuatu yang bodoh, mari kita menambahkan lapisan tambahan untuk berjaga-jaga. Kita dapat memeriksa jika user telah benar-benar terhubung ke database pertama, dan jika mereka memiliki, sebenarnya tidak ada kebutuhan untuk menghubungkan kembali. Jika mereka belum maka kita dapat menggunakan kredensial untuk terhubung.

Seperti yang Anda lihat, itu membuat penggunaan beberapa fungsi dasar mysql dan sedikit memeriksa error untuk memastikan bahwa semuanya berjalan sesuai rencana. Jika menghubungkan ke database berhasil itu akan mengembalikan nilai true, dan jika tidak, itu akan mengembalikan nilai false. Sebagai bonus tambahan ini juga akan menetapkan variabel connection ke true jika koneksi berhasil.

public function disconnect()

Fungsi ini hanya akan memeriksa kami sambungan variabel untuk melihat jika sudah diatur ke true. Jika itu, itu berarti bahwa terhubung ke database, dan script kami akan putus dan mengembalikan true. Jika tidak, maka ada benar-benar tidak perlu melakukan apapun sama sekali.

public function select()

Ini adalah fungsi pertama di mana hal-hal yang mulai menjadi sedikit rumit. Sekarang kita akan berurusan dengan argumen-argumen user dan mengembalikan hasil benar. Karena kita tidak selalu ingin untuk dapat menggunakan hasil segera kita juga akan memperkenalkan sebuah variabel baru yang disebut result, yang akan menyimpan hasil benar. Selain itu kami juga akan membuat fungsi baru yang akan memeriksa untuk melihat apakah table tertentu yang ada dalam database. Karena semua operasi CRUD kami akan memerlukan ini, itu membuat lebih masuk akal untuk menciptakan terpisah daripada mengintegrasikannya ke dalam fungsi. Dengan cara ini, kita akan menghemat ruang dalam kode kita dan dengan demikian, kita akan dapat lebih mengoptimalkan hal nanti. Sebelum kita masuk ke statement select sebenarnya, di sini adalah tableExists fungsi dan variabel pruvate results.

Fungsi ini hanya cek database untuk melihat jika tabel yang diperlukan sudah ada. Jika tidak akan memgembalikan true dan jika tidak, itu akan memgembalikan false.

Sementara itu tampak sedikit menakutkan pada pandangan pertama, fungsi ini benar-benar sejumlah hal. Pertama  ini menerima argumen 4, 1 yang diperlukan. Nama tabel adalah satu-satunya hal yang Anda butuhkan untuk lulus ke fungsi untuk mendapatkan hasil kembali. Namun, jika Anda ingin menyesuaikan sedikit lebih, Anda dapat melakukannya dengan menambahkan baris yang akan ditarik dari database, dan bahkan Anda dapat menambahkan mana dan memesan klausa. Tentu saja, asalkan Anda pass nilai pertama, hasilnya akan secara default yang mereka preset, sehingga Anda tidak perlu khawatir tentang pengaturan semua dari mereka. Sedikit kode tepat setelah argumen hanya berfungsi untuk mengkompilasi semua argumen kita ke sebuah pilih pernyataan. Setelah selesai, pemeriksaan dilakukan untuk melihat jika tabel ada, menggunakan fungsi tableExists sebelumnya kami. Jika ada, maka fungsi terus dan seterusnya dan query dilakukan. Jika tidak, akan gagal.

Bagian berikutnya adalah real magic dari kode. Apa yang dilakukannya adalah mengumpulkan kolom dan data yang diminta dari database. Itu kemudian menetapkan ke variabel hasil kami. Namun, untuk membuatnya lebih mudah bagi pengguna akhir, bukan auto-incrementing tombol angka yang sesuai, nama-nama kolom yang digunakan. Jika Anda mendapatkan lebih dari satu hasil setiap baris yang dikembalikan disimpan dengan dua-dimensi array, dengan key pertama numerik dan auto-incrementing dan key kedua menjadi nama kolom. Jika hanya salah satu hasil yang dikembalikan, maka salah satu dimensi array dibuat dengan key yang kolom. Jika tidak ada hasil yang berubah maka variabel hasil diatur ke null. Seperti saya katakan sebelumnya, tampaknya agak membingungkan, tapi setelah Anda memecah hal-hal yang menjadi bagian masing-masing mereka, Anda dapat melihat bahwa mereka cukup sederhana dan mudah.

public function insert

Fungsi ini jauh lebih sederhana daripada satu sebelumnya. Itu hanya memungkinkan kita untuk memasukkan informasi ke dalam database. Dengan demikian kita akan membutuhkan argumen tambahan nama tabel. Kita akan membutuhkan sebuah variabel yang sesuai dengan nilai-nilai yang kita ingin masukan. Kita hanya dapat memisahkan setiap nilai dengan tanda koma. Kemudian, semua yang perlu kita lakukan adalah cepat memeriksa untuk melihat apakah tableExists kita, dan kemudian membangun statement insert dengan memanipulasi argumen kita untuk membentuk sebuah statement insert. Kemudian kami hanya menjalankan query kami.

Seperti yang Anda lihat, fungsi ini jauh lebih sederhana daripada kami agak kompleks select statement. Fungsi delete kami akan benar-benar bahkan lebih sederhana.

public function delete()

Fungsi ini hanya menghapus table atau baris dari database kami. Dengan demikian kita harus melewati nama tabel dan opsional mana klausa. Mana klausa Mari kita akan tahu jika kita perlu menghapus baris atau seluruh tabel. Jika mana klausa berlalu, yang berarti bahwa entri yang sesuai akan perlu dihapus. Setelah kita mengetahui semua itu, itu adalah hanya masalah kompilasi statement delete kami dan menjalankan query.

Dan akhirnya kita bisa fungsi utama kami. Fungsi ini hanya berfungsi untuk memperbarui sebuah baris dalam database dengan beberapa informasi baru. Namun, karena sifat sedikit lebih kompleks dari itu, itu akan datang sebagai sedikit lebih besar dan jauh lebih membingungkan. Jangan takut, maka banyak pola yang sama fungsi kami sebelumnya. Pertama kali akan menggunakan argumen kita untuk membuat statement update. Ini kemudian akan melanjutkan dengan cek database untuk memastikan bahwa tableExists. Jika ada, itu hanya akan memperbarui baris yang sesuai. Bagian yang sulit, tentu saja, datang ketika kita mencoba dan membuat update statement. Karena update statement memiliki aturan untuk beberapa entri memperbarui (IE-kolom yang berbeda pada baris yang sama melalui penggunaan licik koma 's), kita akan perlu untuk mengambil yang diperhitungkan dan membuat cara untuk menghadapinya. Aku telah memilih untuk lulus di mana klausa sebagai array tunggal. Elemen pertama dalam array akan nama kolom sedang diperbarui, dan berikutnya akan nilai kolom. Dengan cara ini, setiap bahkan nomor (termasuk 0) akan nama kolom, dan setiap ganjil akan nilai baru. Kode untuk melakukan ini sangat sederhana, dan disajikan di bawah ini di luar fungsi:

Bagian berikutnya akan membuat bagian dari statement update yang berhubungan dengan benar-benar menetapkan variabel. Karena Anda dapat mengubah jumlah nilai-nilai, aku memilih untuk pergi dengan array mana key kolom dan nilai adalah nilai baru kolom. Dengan cara ini kita bahkan dapat melakukan cek untuk melihat berapa banyak nilai yang berbeda ditanggungkan diperbarui dan dapat menambahkan koma yang tepat.

Sekarang bahwa kita punya dua bit logika keluar, sisa update statement sangat mudah. Di sini itu disajikan di bawah ini:

Sekarang kita memiliki kita sudah menyelesaikan fungsi terakhir, simple CRUD interface untuk MySQL sekarang selesai. Anda sekarang dapat membuat entri baru, membaca entri khusus dari database, memperbarui entri dan menghapus hal-hal. Juga, menciptakan dan menggunakan kembali kelas ini Anda akan menemukan bahwa Anda menyelamatkan diri banyak waktu dan pengkodean. Ah, keindahan objek pemrograman berorientasi.

Penggunaan

Jadi kita punya kelas kami semua membuat, tetapi bagaimana kita menggunakannya? Bagian ini sederhana. Mari kita mulai dengan membuat database sangat sederhana sistem untuk digunakan dalam pengujian kami. Saya membuat database yang disebut test, dan kemudian jalankan pernyataan MySQL. Anda bisa menempatkannya di setiap database yang Anda sukai, hanya pastikan bahwa Anda mengubah koneksi variabel di bagian atas script untuk mencocokkan:

Baris pertama adalah komentar hanya karena tidak semua orang akan membutuhkannya. Jika Anda perlu menjalankan yang lebih dari sekali, Anda akan perlu komentar itu untuk kedua kalinya untuk memastikan bahwa hal itu menciptakan tabel.

Sekarang bahwa meja kami dibuat dan penduduknya, saatnya untuk menjalankan beberapa kueri sederhana di atasnya.

Jika dilakukan dengan benar, Anda harus melihat berikut:

Demikian juga kita dapat melangkah lebih jauh dan menjalankan update permintaan, dan kemudian output hasil:

Kita harus melihat ini

Sekarang untuk yang sederhana insert statement:

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.