Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / PHPMaker 2021 Menggunakan DBAL Menggantikan ADOdb
Mengenal SEO-Friendly URL di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021
Tiga Pilihan untuk Menyimpan Password di Aplikasi Web dari PHPMaker 2021

PHPMaker 2021 Menggunakan DBAL Menggantikan ADOdb

Ming, 25 Oktober 2020 oleh Masino Sinaga 8 Komentar

Sejak versi 2021, PHPMaker menggunakan DBAL (DataBase Abstraction Layer) menggantikan ADOdb.

DBAL menawarkan layer runtime yang ringan menggunakan API PDO dan banyak tambahan fitur lainnya seperti pemeriksaan skema database dan pemanipulasian melalui API yang berorientasikan object.

Faktanya, DBAL mengabstraksi API PDO yang nyata melalui penggunaan antarmuka yang sangat mirip dengan API PDO yang tersedia, sehingga memungkinkan untuk mengimplementasikan driver kustom yang dapat menggunakan API asli atau buatan sendiri yang sudah ada. Misalnya, DBAL dikirimkan dengan driver untuk database Oracle yang menggunakan ekstensi oci8.

Itu artinya, jika Anda menggunakan database PostgreSQL dan/atau SQLite, makan driver PDO berikut wajib dibutuhkan:
– pdo_pgsql PDO extension untuk PostgreSQL
– pdo_sqlite PDO extension untuk SQLite

Untuk database lainnya (MySQL, Microsoft SQL Server, dan Oracle), akan menggunakan driver berikut:
– mysqli (MySQL Improved Extension),
– Microsoft PHP drivers for PHP for SQL Server,
– oci8 extension seperti sebelumnya.

Sedangkan database Microsoft Access sudah tidak didukung lagi sejak PHPMaker 2021. Jadi, jika Anda sebelumnya mengugunakan database ini, segera migrasikan ke database SQL Server.

Apabila selama ini Anda menggunakan kode ADOdb di Server Events, maka Anda wajib untuk menyesuaikannya. Sebagai contoh, jika Anda memiliki kode untuk mengeksekusi sebuah pernyataan SELECT, Anda perlu memperbarui kode tersebut menggunakan executeQuery() milik object connection, dari kode berikut:

$rs = $conn->execute($sql);
while (!$rs->EOF) {
    $value = $rs["fieldname"];
    $rs->MoveNext();
}
$rs->Close();

menjadi seperti ini:

$stmt = $conn->executeQuery($sql);
while ($row = $stmt->fetch()) {
     $value = $row["fieldname"];
}

Terlihat bahwa kode yang baru menjadi lebih ringkas.

Demikian juga dengan fungsi global Execute(), sejak PHPMaker 2021 diganti menjadi ExecuteQuery(), contoh:

$stmt = ExecuteQuery("SELECT...");

Penting untuk diketahi, bahwa hasil dari kode tersebut adalah object Statement, dan bukan Recordset (seperti di versi-versi PHPMaker sebelumnya).

Jadi, fungsi global Execute() sudah tidak digunakan lagi, dan akan dihapus di versi-versi yang akan datang.

Sedangkan untuk mengeksekusi query SQL INSERT/UPDATE/DELETE dan mengembalikan jumlah baris yang terdampak, kita dapat menggunakan method executeUpdate() milik object connection. Jika kita menggunakan fungsi global, maka kodenya seperti ini:

$rowAffected = ExecuteUpdate("UPDATE MyTable SET... WHERE...");

Untuk info lebih lanjut mengenal DBAL ini, klik Data Retrieval And Manipulation.

Satu lagi fitur yang super canggih sekaligus fleksibel di PHPMaker 2021.

Khusus untuk database MySQL, tersedia 2 pilihan driver MySQL untuk PHP. Yang pertama adalah mysqli (pilihan Default atau Standar), dan yang kedua adalah pdo_mysql.

Jika Anda baru pertama kali menggunakan PHPMaker 2021 dan belum pernah mengganti pilihan driver untuk database MySQL, maka mysqli yang digunakan. Jika Anda ingin menggantinya ke pdo_mysql, maka tinggal ubah dari pengaturan MySQL driver dari menu Tools -> Advanced Settings.

Ditempatkan di bawah: PHPMaker Ditag dengan:ADODB, Belajar PHPMaker, Database Abstraction Layer, DBAL, PDO, PHPMaker 2021, PHPMaker Indonesia, Tutorial PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Mengenal SEO-Friendly URL di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021
Tiga Pilihan untuk Menyimpan Password di Aplikasi Web dari PHPMaker 2021

Komentar

  1. Bayu mengatakan

    Sen, 25 Oktober 2021 pada 1:52 pm

    Terima kasih Bang.
    Saya biasa pakai ew_Execute di custom file.
    Apakah diganti menggunakan $stmt = $conn->executeQuery($sql); ?

    Terima kasih.

    Balas
    • Masino Sinaga mengatakan

      Sen, 25 Oktober 2021 pada 5:25 pm

      Pakai PHPMaker versi berapa?

      Balas
  2. Bayu mengatakan

    Sen, 25 Oktober 2021 pada 4:35 pm

    Bang.
    Saya bikin custom file.
    Saya mengganti tabel dengan tabel saya sendiri.
    Tapi kok selalu no records found.
    Seperti tidak konek ke database.
    Kira-kira apa yang kurang ya.
    Saya pakai MSSQL.

    Balas
    • Masino Sinaga mengatakan

      Sen, 25 Oktober 2021 pada 5:25 pm

      Tergantung kodenya seperti apa?

      Balas
  3. Bayu mengatakan

    Sel, 2 Agustus 2022 pada 6:42 pm

    Selamat malam Bang.

    Saya bikin kode di bawah pakai PHPMaker v2021:

    // Row Updating event
    function Row_Updating($rsold, &$rsnew)
    {
        // Enter your code here
        // To cancel, set return value to false
    
        $rsnew["UpdateBy"] = CurrentUserName();
        $rsnew["UpdateDate"] = CurrentDate();
    
        $CurrentCheckNIK = ExecuteQuery("
        	SELECT
        		CheckNIK
        	FROM
        		ast_tr_item_check
        	WHERE
        		ItemID = ".$rsold["ID"]."
        	ORDER BY
        		ID DESC
        	LIMIT 1
        ");
    
        $this->setFailureMessage($CurrentCheckNIK);
     
        return true;
    }
    

    Saya lihat tidak ada yang aneh.
    Tapi kok pesannya selalu : An internal error has occurred while processing your request.

    Salahnya di mana ya Bang?
    Makasih Bang.

    Balas
    • Masino Sinaga mengatakan

      Rab, 3 Agustus 2022 pada 7:09 am

      Selamat pagi mas Bayu,

      Kalau ingin mengambil nilai tunggal (bukan recordset), ganti ExecuteQuery menjadi ExecuteScalar, lalu coba lagi.

      Balas
      • Bayu mengatakan

        Rab, 3 Agustus 2022 pada 9:23 am

        Selamat pagi Bang.

        Jawabannya manjur.
        Iya ada di Code Repository ya.
        Makasih banyak Bang. GBU.

        Balas
        • Masino Sinaga mengatakan

          Kam, 4 Agustus 2022 pada 7:27 am

          Sama-sama.

          Balas

Tinggalkan Balasan ke Masino Sinaga Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

Pos-pos Terbaru

  • Masino Extensions untuk PHPMaker 2024 Sudah Dirilis, Silahkan Download!
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024
  • Review PHPMaker 2024
  • Mudahnya Mengunci Record dengan Javascript Count Down di PHPMaker 2023
  • Ini Alasan Kenapa Kalian Harus Beralih ke PHP 8

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Masino Extensions untuk PHPMaker 2024 Sudah Dirilis, Silahkan Download! – Masino Sinaga pada Fitur-Fitur Masino Extensions untuk PHPMaker 2024
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024 – Masino Sinaga pada Custom Domain URL di Masino Extensions untuk PHPMaker 2020
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024 – Masino Sinaga pada Membatasi Akses Versi Live dan Versi Development Aplikasi Web dari PHPMaker
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024 – Masino Sinaga pada Nomor Urut Record di Export Data pada PHPMaker 2020 dan PHPMaker 2021
  • Masino Sinaga pada Review PHPMaker 2024

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2023 | WordPress | Catat masuk | Kembali ke atas