Guest User

Untitled

a guest
Feb 2nd, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. <?php
  2. namespace yellowheroes\app\system\libs;
  3.  
  4. use \PDO;
  5.  
  6. /**
  7. * Class DbConnect
  8. *
  9. * @author Yellow Heroes <admin@yellowheroes.com>
  10. * @license MIT License
  11. * @copyright Yellow Heroes, 2019
  12. *
  13. */
  14.  
  15. class DbConnect
  16. {
  17. /**
  18. * a PDO object to run queries
  19. *
  20. * @var \PDO
  21. */
  22. public $pdo;
  23.  
  24. /**
  25. * Connect to a MySQL database (MySQL, SQLite...) through PDO
  26. *
  27. * @param string $type - 'mysql' or 'sqlite'
  28. * @param string $dbName - database name
  29. * @param string $host - host name
  30. * @param string $user - user name
  31. * @param string $passWord - password
  32. *
  33. * @return void
  34. */
  35.  
  36. /** we set defaults: type 'mysql', host 'localhost', user 'root', passWord ''
  37. * so in most cases (where we'd use MySQL), we only have to set database name
  38. */
  39. public function __construct($dbName = null, $type = 'mysql', $host = 'localhost', $user = '', $passWord = null)
  40. {
  41. $dsn = '';
  42. switch ($type) {
  43. case "mysql":
  44. if (!empty($host) && !empty($user) && isset($passWord)) {
  45. $dsn = $type . ':dbname=' . $dbName . ';host=' . $host;
  46. } else {
  47. echo 'error connecting to database';
  48. die();
  49. }
  50. break;
  51.  
  52. case "sqlite":
  53. if (!empty($dbName)) {
  54. // format $dsn - $type:$dbName
  55. // i.e. $type = "sqlite";
  56. // i.e. $dbName = /somedir/databases/mydb.sq3 (PATH to database)
  57. // i.e. $dsn = "sqlite:/somedir/databases/mydb.sq3";
  58. $dsn = $type . ':' . $dbName;
  59. } else {
  60. echo 'error connecting to database';
  61. die();
  62. }
  63. break;
  64. }
  65.  
  66. try {
  67. $this->pdo = new PDO($dsn, $user, $passWord);
  68. } catch (PDOException $e) {
  69. echo 'Connection failed: ' . $e->getMessage();
  70. }
  71. }
  72. }
Add Comment
Please, Sign In to add comment