BaseRepository.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. ApplicationSettings::RegisterDefaultSetting("database", "host", "localhost");
  3. ApplicationSettings::RegisterDefaultSetting("database", "database", "php-mvc");
  4. ApplicationSettings::RegisterDefaultSetting("database", "username", "root");
  5. ApplicationSettings::RegisterDefaultSetting("database", "password", "");
  6. class BaseRepository {
  7. protected static $PDO=null;
  8. protected static function SetupPDO(){
  9. if (self::$PDO!=null)
  10. return;
  11. $host=ApplicationSettings::GetSetting("database", "host");
  12. $db=ApplicationSettings::GetSetting("database", "database");
  13. $username=ApplicationSettings::GetSetting("database", "username");
  14. $password=ApplicationSettings::GetSetting("database", "password");
  15. self::$PDO=new PDO("mysql:host=$host;dbname=$db",$username,$password);
  16. self::$PDO->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
  17. }
  18. public static function GetPDO(){
  19. self::SetupPDO();
  20. return self::$PDO;
  21. }
  22. public function __construct() {
  23. self::SetupPDO();
  24. }
  25. protected function DoBasicSelectQuery($table, $field, array $keyValuePair=null){
  26. $sql="SELECT `$field` FROM `$table`";
  27. $execData=array();
  28. if ($keyValuePair!=null && count($keyValuePair)>0){
  29. $sql.=" WHERE ";
  30. foreach ($keyValuePair as $key=>$value){
  31. $sql.="$key=:$key";
  32. $execData[":$key"]=$value;
  33. }
  34. }
  35. self::SetupPDO();
  36. $prep=self::$PDO->prepare($sql);
  37. $prep->execute($execData);
  38. return $prep->fetchAll(PDO::FETCH_COLUMN);
  39. }
  40. }