Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Problem z PDO
k4wo
post 23.03.2013, 09:32:04
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 11.01.2013

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Posio
post 23.03.2013, 11:00:28
Post #2





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

Ostrzeżenie: (0%)
-----


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....

Ten post edytował Posio 23.03.2013, 11:03:07
Go to the top of the page
+Quote Post
Fifi209
post 23.03.2013, 11:51:31
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Posio - ciekawe, tylko $db jest widziane w __construct ale w innych metodach już nie smile.gif Musiałaby to być zmienna w klasie


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Posio
post 23.03.2013, 12:01:57
Post #4





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 21:01