Basic Database Class

PHP Programowanie MySQL dodano: 5.05.2019
EDYCJA 28.05.2019

Simple and easy database class..

  1. class Database {
  2. public $isConnect;
  3. protected $database;
  4.  
  5. public function __construct($username = '', $password = '', $host = '', $dbname = '', $options = []){
  6. $this->isConnect = true;
  7. try{
  8. $this->database = new PDO('mysql:host='.$host.';dbname='.$dbname.';charset=utf8',''.$username.'',''.$password.'');
  9. // ustawiają żądanie, aby wszelkie błędy zapytania raportowane były jako wyjątki.
  10. $this->database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  11. // sql injection:
  12. $this->database->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
  13. $this->database->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  14. }
  15. catch(PDOException $e){
  16. $this->isConnect = false;
  17. throw new Exception($e->getMessage());
  18. }
  19. }
  20.  
  21. public function disconnect(){
  22. $this->database = NULL;
  23. $this->isConnect = false;
  24. }
  25.  
  26. public function getRow($query, $params = []){
  27. try{
  28. $stmt = $this->database->prepare($query);
  29. $stmt->execute($params);
  30. return $stmt->fetch();
  31. }
  32. catch(PDOException $e){
  33. throw new Exception($e->getMessage());
  34. }
  35. }
  36.  
  37. public function getRows($query, $params = []){
  38. try{
  39. $stmt = $this->database->prepare($query);
  40. $stmt->execute($params);
  41. return $stmt->fetchAll();
  42. }
  43. catch(PDOException $e){
  44. throw new Exception($e->getMessage());
  45. }
  46. }
  47.  
  48. public function insertRow($query, $params = []){
  49. try{
  50. $stmt = $this->database->prepare($query);
  51. $stmt->execute($params);
  52. return true;
  53. }
  54. catch(PDOException $e){
  55. throw new Exception($e->getMessage());
  56. }
  57. }
  58.  
  59. public function updateRow($query, $params = []){
  60. $this->insertRow($query, $params);
  61. }
  62.  
  63. public function deleteRow($query, $params = []){
  64. $this->insertRow($query, $params);
  65. }
  66.  
  67. } // end class
  68.  
  69. $db = new Database();
  70.  
  71. $db->disconnect();

Przykład użycia

  1. $getRow1 = $db->getRow("SELECT * FROM users WHERE id = ?",[1]);
  2. $getRow3 = $db->getRow("SELECT name FROM users WHERE email = ?" , ['wojtas86@gmail.com']);
  3.  
  4. $getRows = $db->getRows("SELECT * FROM users");
  5.  
  6. $isUser = $db->getRow("SELECT * FROM users WHERE name = ?" , ['Artur']);
  7. if(!$isUser){
  8. $insertRow = $db->insertRow("INSERT INTO users (name, pass, email) VALUES (?,?,?)", ['Artur', 'password', 'email@email.com'] );
  9. }
  10. else{
  11. echo '

    user istnieje

    '
    ;
  12. }
  13.  
  14. $updateRow = $db->updateRow("UPDATE users SET nick = ? WHERE id = ?", ['Nick test', 5]);
  15.  
  16. $deleteRow = $db->deleteRow("DELETE FROM users WHERE id = ? LIMIT 1 ", [3]);


Losowe zdjęcia


O sobie


gawronski
A.D. 2016

Lubię jazdę na rowerze, wspinaczkę, czytać książki i biegać. Studiowałem mechanikę i budowę maszyn oraz psychologię. Nie zostałem inżynierem ani psychologiem.