Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mysql - problem z include
Forum PHP.pl > Forum > PHP
tabbi
Witam,

Mam pytanie w jaki sposób, wykonywać zapytania sql na stronie. Chce stworzyć klase mysql do łączenia się z bazą danych. odpowiednio include_once. Używam PDO, i jakby dało rady naszkicować jakiś szkielet. Teraz mam tak:

  1. class Mysql{
  2.  
  3. var $dbh;
  4. function __construct(){
  5.  
  6.  
  7. $Parm['DBHost'] = 'localhost';
  8. $Parm['DBLogin'] = 'szpital';
  9. $Parm['DBPass'] = 'asdasd';
  10. $Parm['DBName'] = 'prorapid';
  11. $Parm['DBType'] = 'mysql';
  12. try
  13. {
  14. $this->dbh = new PDO($Parm['DBType'].':dbname='.$Parm['DBName'].';host='.$Parm['DBHost'], $Parm['DBLogin'], $Parm['DBPass']);
  15. $this->dbh-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  16. }
  17. //Wyświetlanie błędów wrazie niepowodzenia uruchamiania rozszerzenia
  18. catch(PDOException $e)
  19. {
  20. echo $e->getMessage();
  21. }
  22.  
  23. }
  24. }


i na stronie np. index.php

  1. include_once("include/class_mysql.php");
  2. $db= new Mysql();
  3.  
  4. $sql="
  5. SELECT
  6. *
  7. FROM
  8. demo_charge_types
  9. ORDER BY price ASC LIMIT 4
  10.  
  11. ";
  12.  
  13. foreach ($db=$this->dbh->query($sql) as $row){
  14. echo'<tr><td>'.$row['bandwidth'].'GB</td><td><strong>'.$row['price'].' zł</strong></td><td><a href="kup">kup teraz!</a></td></tr>';
  15. }


Tak to nie działa, informuje że this nie jest z obiektu. Jakiś pomysł ?
vermis
  1. foreach ($db->dbh->query($sql) as $row){...


Nie możesz używać $this poza klasą.
tabbi
Dzieki tongue.gif
Mephistofeles
Skoro używasz PDO to masz PHP 5, a co za tym idzie stosuj składnię PHP 5 - var $... to pozostałość po 4, zostawiona ze względu na kompatybilność, stosuj zamiast tego modyfikatory dostępu - private, public, protected.
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.