Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]klasy i połączenie z bazą danych
Forum PHP.pl > Forum > Przedszkole
Larges
Ma ktoś z Was jakieś ciekawe adresy z przykładami łączenia się z bazą danych w klasie?
Próbuję, próbuję i nie bardzo potrafię - kodu w klasie mam od groma, nie będę wklejał. Gdyby ktoś z Was mógł ułożyć przykładową klasę, która połączy się z bazą danych i wyszuka wynik, to będę wdzięczny. Łączenie z bazą poza klasą nie sprawia mi trudności...
Cezar708
Może jeśli chcesz zobaczyć jakiś prosty przykład abstrakcji bazy danych proponuję ściągnąć i mniej więcej zrozumieć kod na przykład AdoDB

Pozdrawiam
bartg
  1. <?php
  2. class Plugin_Database {
  3. public $aQueries;
  4. private $rConnect;
  5. public $aBindsWhat, $aBindsOn;
  6. public function connect($sUser, $sPassword, $sDatabase, $sHost='localhost')
  7. {
  8. $this->rConnect = @mysql_connect($sHost, $sUser, $sPassword);
  9. if(!$this->rConnect)
  10. {
  11. throw new Syd_Exception('Can not connect to database.');
  12. }
  13. if(!mysql_select_db($sDatabase, $this->rConnect))
  14. {
  15. throw new Syd_Exception('Can't select database.');
  16. }
  17. }
  18. public function getHtmlQuerys()
  19. {
  20. $sHtml = '
  21. <table style="border: 1px solid black; border-spacing: 0; border-collapse: collapse;">
  22. <tr>
  23. <td style="border: 1px solid black;">Nr ('.count($this->aQueries).')</td>
  24. <td style="border: 1px solid black;">Query</td>
  25. <td style="border: 1px solid black;">Num rows</td>
  26. <td style="border: 1px solid black;">Affected rows</td>
  27. </tr>';
  28. foreach($this->aQueries AS $key => $value)
  29. {
  30. $sHtml .= '
  31. <tr>
  32. <td style="border: 1px solid black;">'.($key+1).'</td>
  33. <td style="border: 1px solid black;">'.(empty($value['error'])?nl2br($value['sql']):'<span style="color: red;">'.nl2br($value['error']).'</span>').'</td>
  34. <td style="border: 1px solid black;">'.$value['num'].'</td>
  35. <td style="border: 1px solid black;">'.$value['affected'].'</td>
  36. </tr>';
  37. }
  38. $sHtml .= '</table>';
  39. return $sHtml;
  40. }
  41. public function query($sSql)
  42. {
  43. $rQuery = @mysql_query($sSql, $this->rConnect);
  44. if($sError = @mysql_error())
  45. {
  46. $sError = 'Error in query: "'.$sSql.'"
  47. "'.$sError.'"';
  48. }
  49. $iNum = @mysql_num_rows($rQuery);
  50. $iAffected = mysql_affected_rows();
  51. $this->aQueries[] = array('sql' => $sSql, 'num' => $iNum, 'affected' => $iAffected, 'error' => $sError);
  52. $this->aBindsWhat = array();
  53. $this->aBindsOn = array();
  54. return $rQuery;
  55. }
  56. public function Execute($sSql)
  57. {
  58. $sSql = str_replace('tongue.gifR:', $this->oConfig->get('database', 'prefix'), $sSql);
  59. $sSql = str_replace($this->aBindsWhat, $this->aBindsOn, $sSql);
  60. return $this->query($sSql);
  61. }
  62. public function assignInt($sWhat, $sOn)
  63. {
  64. $this->aBindsWhat[] = ':'.$sWhat.':';
  65. $this->aBindsOn[] = (int)$sOn;
  66. }
  67. public function assignString($sWhat, $sOn)
  68. {
  69. $this->aBindsWhat[] = ':'.$sWhat.':';
  70. $this->aBindsOn[] = (string)('''.$sOn.''');
  71. }
  72. public function getAll($sSql)
  73. {
  74. $rQuery = $this->Execute($sSql);
  75. $aFields_ = array();
  76. while($aFields = @mysql_fetch_assoc($rQuery))
  77. {
  78. $aFields_[] = $aFields;
  79. }
  80. return $aFields_;
  81. }
  82. public function getRow($sSql)
  83. {
  84. $rQuery = $this->Execute($sSql.' LIMIT 1');
  85. $aFields = mysql_fetch_assoc($rQuery);
  86. if(isset($aFields))
  87. {
  88. return $aFields;
  89. } else {
  90. return array();
  91. }
  92. }
  93. public function Insert($sTable, $aRows)
  94. {
  95. foreach($aRows AS $key => $value)
  96. {
  97. $aValues[] = $key;
  98. $aInserts[] = $value;
  99. }
  100. return $this->Execute('INSERT INTO '.$sTable.' ( '.(implode(',', $aValues)).' ) VALUES ( '.(implode(',', $aInserts)).' )');
  101. }
  102. public function Update($sTable, $aRows, $sWhere='')
  103. {
  104. $sSql = 'UPDATE '.$sTable;
  105. foreach($aRows AS $key => $value)
  106. {
  107. $sSql_[] = '`'.$key.'`='.$value;
  108. }
  109. $sSql .= ' SET '.implode(',', $sSql_);
  110. if(!empty($sWhere))
  111. {
  112. $sSql .= ' WHERE '.$sWhere;
  113. }
  114. return $this->Execute($sSql);
  115. }
  116. public function Delete($sTable, $sWhere='')
  117. {
  118. $sSql = 'DELETE FROM '.$sTable;
  119. if(!empty($sWhere))
  120. {
  121. $sSql .= ' WHERE '.$sWhere;
  122. }
  123. return $this->Execute($sSql);
  124. }
  125. ?>

Prosta przykładowa klasa ;p
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.