Web Development

PHP PDO MySQL – Contoh Sederhana Menghubungkan ke MySQL Dengan PDO Class

Saya akan menunjukkan contoh sederhana tentang cara menyambung ke MySQL menggunakan kelas PDO PHP. Beberapa keuntungan dari PDO adalah cepat dan jika Anda menggunakan metode PDO :: prepared () akan mencegah serangan injeksi SQL dengan memanggil metode PDO :: quote (). Kelebihan lainnya adalah ada beberapa database yang akan didukungnya. Jadi, mari selami langsung kodenya:

$ hostname = ‘localhost’;

$ username = ‘your_username’;

$ password = ‘your_password’;

coba {

$ db = PDO baru (“mysql: host = $ hostname; dbname = mysql”, $ username, $ password);

echo ‘Terhubung ke database’;

}

catch (PDOException $ e) {

echo $ e-> getMessage ();

}Kesalahan Fatal Instans PDO baru

Hanya catatan penting bahwa jika Anda menerima jenis galat fatal berikut ini di lingkungan pengembangan Anda:

Galat fatal: pengecualian tak tertangkap ‘PDOException’ dengan pesan ‘SQLSTATE[42000] [1049] Database tidak dikenal ” pengguna ” ‘di C: Program Files Apache Software Foundation Apache2.2 htdocs test trunk code login 1 class std.pdo_singleton.class.inc: 30 Pelacakan tumpukan: # 0 C: Program Files Apache Software Foundation Apache2.2 htdocs test trunk code login 1 class std.pdo_singleton.class.inc (30): PDO -> __ construct (‘mysql: host = loca … ‘,’ username ‘,’ password ‘) # 1 C: Program Files Apache Software Foundation Apache2.2 htdocs test trunk code login 1 class std.mysql.class_test. inc (43): db :: getConnect () # 2 C: Program Files Apache Software Foundation Apache2.2 htdocs test trunk code login 1 connect.php (6): MySqlDb-> confirmUserPass (‘usertest’, ‘passtest’) # 3 {main} muncul di C: Program Files Apache Software Foundation Apache2.2 htdocs test trunk code login 1 class std.pdo_singleton.class. inc di baris 30

Terlihat sangat berantakan dan sulit diuraikan. Saat mencoba menguraikan kode kesalahan, saya biasanya melihat kesalahan pertama yang membuat saya mengetahui mengapa ia melaporkan “Database tidak dikenal” padahal sudah ada. Kutipan tambahan juga memberi saya petunjuk tentang masalah tersebut. Jadi saya menyimpulkan bahwa masalah tersebut mengakibatkan penempatan tanda kutip tambahan di sekitar nilai host dan / atau dbname. Berikut ini akan menghasilkan kesalahan sebelumnya:

$ db = PDO baru (“mysql: host = ‘localhost’; dbname = ‘mysql'”, $ username, $ password);

Jadi jika Anda tidak menggunakan variabel maka jangan menambahkan tanda kutip tunggal untuk nilai host dan dbname. Dengan kata lain, gunakan kode berikut sebagai gantinya:

$ db = PDO baru (“mysql: host = localhost; dbname = mysql”, $ username, $ password);

Ini adalah tes sederhana untuk menghubungkan ke database mysql Anda atau database dukungan lainnya. Hanya untuk informasi Anda jika Anda ingin terhubung ke PostgreSQL yang merupakan database populer dan kuat lainnya, gunakan kode berikut sebagai pengganti baris instantiation:

$ db = PDO baru (“pgsql: dbname = pdo; host = localhost”, “username”, “password”);

Jika Anda berada dalam lingkungan pengembangan dan ingin menampilkan kesalahan Anda langsung ke layar, Anda dapat menentukan kesalahan yang ditampilkan. Anda perlu menyetel setelan display_errors ke ‘aktif’ di file php.ini Anda. Jadi atur atribut kesalahan Anda setelah membuat instance kelas PDO seperti ini:

$ db-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);

Ada tiga jenis pengaturan laporan kesalahan untuk PDO :: ATTR_ERRMODE:

PDO :: ERRMODE_SILENT = kode kesalahan

PDO :: ERRMODE_WARNING = E_WARNING

PDO :: ERRMODE_EXCEPTION = Lempar pengecualian

Berikut adalah contoh implementasi PDO :: ATR_ERRMODE:

$ hostname = ‘localhost’;

$ username = ‘your_username’;

$ password = ‘your_password’;

coba {

$ db = PDO baru (“mysql: host = $ hostname; dbname = artikel”, $ username, $ password);

echo ‘Terhubung ke database’; // periksa koneksi

$ db-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_WARNING);

$ sql = ‘Pilih * dari tutorialref dimana id = 1’;

$ hasil = $ db-> kueri ($ sql);

foreach ($ result as $ row) {

echo $ row[‘id’] . ‘ – ‘. $ row[‘author’] . ”;

}

$ db = nol; // tutup koneksi database

}

catch (PDOException $ e) {

echo $ e-> getMessage ();

}

Jangan bingung ini dengan kesalahan yang dihasilkan dari pengaturan php error_reporting. Kesalahan dari PDO :: ATTR_ERRMODE berlaku untuk kueri sql dan hasilnya. Saya akan menyelami pengaturan kesalahan dan keluaran yang berbeda dari pengaturan php.ini error_reporting dan pengaturan laporan PDO :: ATTR_ERRMODE di artikel mendatang.



Source by Victor Kimura

Author

admin

Leave a comment

Your email address will not be published. Required fields are marked *

WeCreativez WhatsApp Support
Tim support kami di sini untuk menjawab pertanyaanmu. Tanyakan apa saja pada kami!
👋 Halo... ada yg bisa kami bantu?
%d bloggers like this: