Tutorial PHP : Fungsi try catch pada PDO

Try catch didalam koneksi

Jika menggunakan PHP PDO mungkin Anda akan menemukan beberapa orang menggunakan block try dan catch pada koneksi ataupun parameter query yang dibangun, namun apa sebenarnya fungsi dari block parameter try catch tersebut ?

Parameter tersebut digunakan untuk menampilkan error/kesalahan  dari kode yang Anda buat. Misalnya saat Anda melakukan kesalahan pemilihan pada tabel di database, mengeset parameter saat update atau melakukan get dsb, jika Anda secara tidak sengaja menulis kesalahan, maka PHP akan memberitahu letak kesalahan yang Anda buat

Parameter try catch umumnya akan didefinisikan terlebih dahulu didalam perintah untuk melakukan koneksi ke database, contohnya seperti berikut ini :


<?php


	
class database
{
	private $host="localhost";
	private $user="root";
	private $pass="";
	private $db="codexam";
	protected $koneksi;
	public function __construct(){

		try
		{
				$this->koneksi = new PDO("mysql:host=$this->host; dbname=$this->db",$this->user, $this->pass);
				$this->koneksi->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		}
		catch(PDOException $e)
		{
				echo $e->getMessage();
		}
		return $this->koneksi;
	}
		
}

?>

Selanjutnya parameter try catch juga perlu didefinisikan kembali misalnya saat melakukan operasi query database, contohnya seperti berikut ini :

contoh :


<?php
class crud extends database
{
	
	
	public function showData()
	{
		$sql ="SELECT * FROM tb_mahasiswa";
		$stmt=$this->koneksi->prepare($sql);
		$stmt->execute();
		return $stmt;
	}
	public function insertData($nim, $nama)
	{
		try
		{
			$sql="INSERT INTO tb_mahasiswa(nim, nama_mahasiswa) VALUES (:nim, :nama_mahasiswa)";
			$stmt=$this->koneksi->prepare($sql);
				$stmt->bindParam(":nim",$nim);
				$stmt->bindParam(":nama_mahasiswa", $nama);
				$stmt->execute();
				return true;
		}
		catch(PDOException $e)
		{
				echo $e->getMessage();
				return false;
				
			
		}
	}
	public function detailData($data)
	{
		# GET DATA
		try
		{
			$sql ="SELECT id_mahasiswa, nim, nama_mahasiswa FROM tb_mahasiswa WHERE id_mahasiswa=:id_mahasiswa";
			$stmt=$this->koneksi->prepare($sql);
			$stmt->bindParam(":id_mahasiswa",$data);
			$stmt->execute();
			$stmt->bindColumn(1, $this->id_mahasiswa);
			$stmt->bindColumn(2, $this->nim);
			$stmt->bindColumn(3, $this->nama_mahasiswa);
			$stmt->fetch(PDO::FETCH_ASSOC);
			if($stmt->rowCount()==1):
				return true;
			else:
				return false;
			endif;

			
		}
		catch(PDOException $e)
		{
			echo $e->getMessage();
			
		}
	}
	public function detailData_duatest($data)
	{
		# Sample GET DATA by ID
		try
		{
			$sql ="SELECT id_mahasiswa, nim, nama_mahasiswa FROM tb_mahasiswa WHERE id_mahasiswa=:id_mahasiswa";
			$stmt=$this->koneksi->prepare($sql);
			$stmt->execute(array(":id_mahasiswa"=>$data));
			$this->row=$stmt->fetch(PDO::FETCH_ASSOC);
			return $this->row;
		}
		catch(PDOException $e)
		{
			echo $e->getMessage();
		}
	}
	public function updateData($nim, $nama, $data)
	{
		try
		{
			$sql="UPDATE tb_mahasiswa SET nim=:nim, nama_mahasiswa=:nama_mahasiswa WHERE id_mahasiswa=:id_mahasiswa";
			$stmt=$this->koneksi->prepare($sql);
			$stmt->bindParam(":nim",$nim);
			$stmt->bindParam(":nama_mahasiswa",$nama);
			$stmt->bindParam(":id_mahasiswa",$data);
			$stmt->execute();
			return true;
		}
		catch(PDOException $e)
		{
			echo $e->getMessage();
			return false;
		}
	}
	public function delete ($data)
	{
		try{
			$sql="DELETE FROM tb_mahasiswa WHERE id_mahasiswa=:id_mahasiswa";
			$stmt=$this->koneksi->prepare($sql);
			$stmt->execute(array("id_mahasiswa"=>$data));
			return true;
		}
		catch(PDOException $e)
		{
			echo $e->getMessage();
			return false;
		}
	}
}
?>

Jika parameter tersebut tidak Anda definisikan, PHP akan tetap menampilkan pesan kesalahan, hanya saja akan terjadi error misalnya seperti Fatal error : : Uncaught PDOException: sebab anda tidak mendifinisikan block try catch didalam parameter query

error tanpa try catch

Jika parameter try catch didefinisikan kembali didalam parameter query yang dibangun, maka saat terjadi error, maka error yang ditampilkan akan lebih baik serta tidak terlalu panjang jika dibaca

error dengan try catch

Baca juga : Tutorial PHP : CRUD PDO OOP PHP


0 Response to " Tutorial PHP : Fungsi try catch pada PDO"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin