Przejście z mysqli na PDO

0

Z racji, że jest to mój pierwszy post, nie mogę tu wrzucić kodu. Będzie niżej.

0

Dzień dobry.
Aby się rozwijać postanowiłem nauczyć się i przejść na PDO. Jednak tu trochę inaczej sprawa wygląda przez bindowanie chociażby. Będę wdzięczny, jeśli ktoś pomoże łatwo ten temat ogarnąć. Otóż wypadało by mieć bazę w klasie, więc odpada załączanie pliku z z PDO i takie korzystanie, prawda?

Do tej pory, korzystając z MySQL, zrobiłem sobie coś w tym stylu:

<?PHP
	class database{
		private $db;
		
		public function __construct($config){
			$this->config = $config;
			
			if($this->config['db_active'] == false){
				die("Database is not activated");
			}
			
			$this->db = new mysqli($this->config['db_host'], $this->config['db_user'], $this->config['db_password'], $this->config['db_database']);

			if($this->db->connect_error){
				die("Connection failed: " . $this->db->connect_error);
			}
		}
		public function queryFetch($query){
			$result = mysqli_fetch_array(mysqli_query($this->db, $query));
			
			if($this->db->error && $this->config['db_debug_mode']){
				die("Error description: " . $this->db->error);
			}
			
			return $result;
		}
		public function queryNum($query){			
			$result = mysqli_num_rows(mysqli_query($this->db, $query));
			
			if($this->db->error && $this->config['db_debug_mode']){
				die("Error description: " . $this->db->error);
			}
			
			return $result;
		}
		public function query($query){
			$result = mysqli_query($this->db, $query);
			
			if($this->db->error && $this->config['db_debug_mode']){
				die("Error description: " . $this->db->error);
			}
			
			return $result;
		}
	}

A jeśli chodzi o PDO, to jakoś tak miałoby to wyglądać? Czy to jest poprawnie?

class Database
	{
		public function __construct($config)
		{
			$this->config = $config;
			
			$dsn = "mysql:host={$config['db_host']};dbname={$config['db_database']};charset={$config['db_charset']}";
	
			try {
				 $pdo = new PDO($dsn, $config['db_user'], $config['db_password'], $config['db_options']);
				 $this->pdo = $pdo;
			} catch (\PDOException $e) {
				 throw new \PDOException($e->getMessage(), (int)$e->getCode());
			}
		}
		
		public function query($query)
		{
			$stmp = $this->pdo->query($query);
			return $stmp;
		}
		
		public function prepare($query)
		{
			$stmp = $this->pdo->prepare($query);
			$stmp->execute(['id' => 5]); 
			return $stmp;
		}
	}

1 użytkowników online, w tym zalogowanych: 0, gości: 1