Podkreślam ,że dopiero rozpoczynam przygodę z programowaniem obiektowym.
Głównie chodzi mi o ocenę wydajnośći skryptu. - Nie wiem czy lepiej być stale połączonym z bazą czy co chwile otwierać nowe połączenia(tak jak w klasie).
W kodzie może być malutki bałagan ale wszyscy wiemy jak coś wygląda gdy robi się to po dniu pracy.
Funkcje:
-insert
-update
-select
Wszystko POWINNO chodzić sprawnie.
class dataBase { private $_host = null; private $_database = null; private $_username = null; private $_password = null; public function __construct(){ $nn = new Hconfig; $data = $nn->dbConf(); $this->_host = $data['host']; $this->_database = $data['db']; $this->_username = $data['username']; $this->_password = $data['password']; } public function insert($table, $fields, $values, $params){ $table = '`'.$table.'`'; for($i=0;$i<$cf;$i++){$qf .= '`'.$fields[$i].'`, ';} for($i=0;$i<$cv;$i++){$vf .= ':'.$fields[$i].', ';} try{ $pdo = new PDO('mysql:host='.$this->_host.';dbname='.$this->_database.'', ''.$this->_username.'', ''.$this->_password.''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->prepare('INSERT INTO '.$table.' ('.$qf.') VALUES ('.$vf.')'); for($i=0;$i<$cf;$i++) { $stmt->bindValue($vfe[$i], $values[$i], $params[$i]); } $status = $stmt->execute(); return $status; $stmt -> closeCursor(); } catch(PDOException $e){ } } public function update($table, $fields, $values, $params, $where){ $table = '`'.$table.'`'; for($i=0;$i<$cf;$i++){$qf .= '`'.$fields[$i].'`, ';} for($i=0;$i<$cv;$i++){$vf .= ':'.$fields[$i].', ';} for($i=0;$i<$cf;$i++){$ustring .= '`'.$fields[$i].'`='.$vfe[$i].', ';} try{ $pdo = new PDO('mysql:host='.$this->_host.';dbname='.$this->_database.'', ''.$this->_username.'', ''.$this->_password.''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->prepare('UPDATE '.$table.' SET '.$ustring.' '.$wh.''); for($i=0;$i<$cf;$i++) { $stmt->bindValue($vfe[$i], $values[$i], $params[$i]); } $status = $stmt->execute(); return $status; $stmt -> closeCursor(); } catch(PDOException $e){ } } public function select($from, $fields, $where, $sort){ $table = '`'.$table.'`'; try{ $pdo = new PDO('mysql:host='.$this->_host.';dbname='.$this->_database.'', ''.$this->_username.'', ''.$this->_password.''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo -> query('SELECT '.$fields.' FROM '.$from.' '.$wh.' '.$srt.''); return $stmt; $stmt -> closeCursor(); } catch(PDOException $e){ } } }
Podkreślam, że póki co w programowaniu obiektowym raczkuje... Przyjmuje na klatę całą krytykę i sugestie na które niecierpliwie czekam.
Przykład zastosowania:
$posio = new dataBase; $test = $posio->insert('users', 'id, login, password, email', ', testlogin, testpassword, testmail', '1, 2, 2, 2');