As we know that in trigger definition, we can refer to columns of the row being inserted, updated or deleted. Following are the ways OLD and NEW keywords enable us to access columns − Show
Now, the use of OLD and NEW must be done appropriately because the triggering event Determines which of them are allowable −
In other words, we can say that OLD must be used in read-only fashion and NEW can be used to read or change column values. Use of keyword OLD in triggerFollowing the example of DELETE trigger is showing the use of OLD − mysql> CREATE TRIGGER studentinfo_after_delete -> AFTER DELETE -> ON student_info -> FOR EACH ROW FOLLOWS -> BEGIN -> DECLARE vuser varchar(30); -> SELECT USER() into vuser; -> INSERT INTO student_info_deleted(id,deleted_date,deleted_by) VALUES(OLD.id,SYSDATE(),vuser); -> END; // Query OK, 0 rows affected (0.25 sec) Use of keyword NEW in triggerFollowing the example of INSERT trigger is showing the use of NEW − mysql> Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW BEGIN IF NEW.age < 0 THEN SET NEW.age = 0; END IF; END // Query OK, 0 rows affected (0.30 sec)
Updated on 30-Jul-2019 22:30:21
Tutorial PHP MySQL Part 20: Cara Membuat Koneksi PHP MySQL dengan PDO
16 Dec 14 | | Tutorial PHP | | Setelah membahas tentang pengertian PDO dan cara mengaktifkan driver PDO di dalam PHP, pada tutorial PHP MySQL kali ini kita akan membahas cara membuat koneksi PHP MySQL dengan PDO (PHP Data Object). Dalam tutorial kali ini saya hanya fokus untuk membahas cara membuat koneksi, untuk cara menjalankan dan menampilkan data hasil query, akan kita bahas dalam tutorial selanjutnya. Membuat koneksi PHP MySQL dengan PDO constructorKarena PDO adalah fungsi/fitur PHP yang ditulis menggunakan objek, maka untuk membuat koneksi antara PHP dengan MySQL, kita menggunakan PDO constructor, yakni dengan membuat objek baru dari class PDO (menggunakan keyword: new). Berikut adalah struktur dasar cara penulisan PDO constructor untuk database MySQL: $dbh = new PDO('mysql:host=lokasi_db;dbname=nama_database', "nama_user", "password_user"); Variabel $dbh adalah variabel yang akan menjadi object PDO. Object ini biasa disebut sebagai “Database Handler”. Object inilah yang nantinya akan kita gunakan untuk menjalankan perintah-perintah PDO. Nama variabel boleh bebas, dan tidak harus $dbh. Argumen dari constructor PDO terdiri dari 3 bagian, bagian pertama berisi nama database server (misalnya:mysql) kemudian diikuti dengan alamat server dan nama database, semuanya di dalam 1 string. Untuk argumen kedua diisi dengan nama user, dan argumen ketiga berisi password user. Sebagai contoh, untuk masuk ke dalam MySQL server di komputer localhost, dengan user root, password: 12345, nama database: universitas, kode PDO yang digunakan adalah sebagai berikut: <?php $dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "12345"); ?> Setelah membuat koneksi PDO, untuk menghapus koneksi kita tinggal memberikan nilai “null” kepada variabel “Database Handler” sebagai berikut: <?php $dbh = null; ?> Sama seperti mysqli, proses penutupan koneksi ini bersifat opsional, dan PHP secara otomatis akan menghapus koneksi pada saat halaman PHP selesai dijalankan. Walaupun dalam tutorial ini kita hanya membahas MySQL, sebagai perbandingan berikut adalah cara melakukan koneksi untuk database server MS SQL, Sybase dan SQLite: Koneksi PDO untuk MS SQL Server Database: $dbh = new PDO("mssql:host=$host;dbname=$dbname, $user, $pass"); Koneksi PDO untuk Sybase Database: $dbh = new PDO("sybase:host=$host;dbname=$dbname, $user, $pass"); Koneksi PDO untuk SQLite Database: $dbh = new PDO("sqlite:my/database/path/database.db"); Cara Menampilkan Pesan Kesalahan (error) pada PDOKarena PDO menggunakan object, penanganan kesalahan akan lebih baik jika menggunakan blok TRY…CATCH, atau dikenal dengan “exceptions”. Untuk menampilkan pesan kesalahan dengan exceptions pada PDO, terdapat 3 pilihan metode. Ketiga metode ini menggunakan method PDO::setAttribute(PDO::ATTR_ERRMODE):
PDO::ERRMODE_SILENT adalah pilihan default. Jika kita tidak mengubah setingan error, pilihan inilah yang digunakan. Untuk mengecek error, kita bisa menggunakan method PDO::errorCode() dan PDO::errorInfo(). PDO::ERRMODE_WARNING digunakan untuk menampilkan error berupa warning PHP, kemudian PHP akan melanjutkan proses eksekusi program. Pilihan ini cocok untuk proses debugging. PDO::ERRMODE_EXCEPTION digunakan untuk menampilkan error dengan exceptions. Pilihan inilah yang sering digunakan untuk menampilkan error dengan TRY…CATCH. Dengan menggunakan penanganan kesalahan (exceptions), berikut adalah modifikasi kode PHP untuk koneksi PDO dengan MySQL: <?php try { // buat koneksi dengan database $dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", ""); // set error mode $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); // hapus koneksi $dbh = null; } catch (PDOException $e) { // tampilkan pesan kesalahan jika koneksi gagal print "Koneksi atau query bermasalah: " . $e->getMessage() . "<br/>"; die(); } ?> Sebagai contoh, jika saya mengganti nama user menjadi “user_tetangga” yang memang tidak ada di dalam database, berikut tampilan error yang terjadi: Koneksi atau query bermasalah: SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'universitas' Didalam block TRY…CATCH inilah nantinya kita akan menjalankan query-query MySQL seperti menampilkan data, maupun menginput data baru ke dalam tabel MySQL. Untuk cara menampilkan data tabel MySQL menggunakan PDO, akan kita bahas dalam tutorial berikutnya: Cara Menampilkan data MySQL menggunakan PDO (PHP Data Object). |