Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z PDO
Forum PHP.pl > Forum > Przedszkole
k4wo
Witaj,

temat specjalnie wylądował w tym dziale bo zdaję sobie sprawę z trywialności tej sprawy, ale od kilku dni siedzę i nie mogę sobie poradzić (aż wstyd się przyznać). Do rzeczy. Nie mogę nawiązać połączenia z bazą danych. Próbowałem na wszystkie możliwe sposoby, jednak PDO jakoś mi nie siedzi (jak i całe OOP). Próbowałem różne warianty i we wszystkich miałem zawsze jakiś problem dlatego proszę Cię o pomoc.


Zawsze gdy próbuję nawiązać połączenie z bazą napotykam problem. Próbowałem wstawić PDO do konstruktora, metody i jeszcze w kilka innych miejsc za każdym razem klapa. W tej wersji kodu dostaję taki komunikat:
Cytat
syntax error, unexpected '$db' (T_VARIABLE), expecting function (T_FUNCTION) in



Nie mam pojąca co robię źle dlatego proszę Cię abyś pokazał mi gdzie popełniłem błąd.
Posio
Mw. tak to powinno wyglądać koleszko:

  1. public function __construct() {
  2. try {
  3. $db = new PDO('mysql:host=localhost;dbname=skarb_data', 'root', '');
  4.  
  5. } catch(PDOExecption $e) {
  6. echo 'Cos sie xo, ale jeszcze nie wiem co: '.$e->getMessage();
  7. }
  8. }
  9.  
  10. public function insert($table, $row, $values) {
  11. $x = $db->exec("INSERT INTO $table($row) VALUES ($values)");
  12. if($x > 0)
  13. {
  14. return true;
  15. }
  16. }


btw. podając tutaj kod, mogłeś go znormalizować i przełożyć na taki troszkę wyższego poziomu. Nie wszyscy lubią czytać takie kawałki kodu. Nie pokazuj nam tu swojego poziomu....
Fifi209
Posio - ciekawe, tylko $db jest widziane w __construct ale w innych metodach już nie smile.gif Musiałaby to być zmienna w klasie
Posio
brrr, przepraszam. Korzystam z telefonu i jakoś mi to umknęło.

  1. class BazaDanych {
  2. protected $db = '';
  3.  
  4. public function __construct() {
  5. try {
  6. $this->db = new PDO('mysql:host=localhost;dbname=skarb_data', 'root', '');
  7.  
  8. } catch(PDOExecption $e) {
  9. echo 'Cos sie xo, ale jeszcze nie wiem co: '.$e->getMessage();
  10. }
  11. }
  12.  
  13. public function insert($table, $row, $values) {
  14. $x = $this->db->exec("INSERT INTO $table($row) VALUES ($values)");
  15. if($x > 0)
  16. {
  17. return true;
  18. }
  19. }
  20. }
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.