Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z PDO
Wilqu
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.09.2009

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


Mam taki problem. Używam do kontaktu z bazą obiektów typu PDO. Potrzebuje dosc banalnej rzeczy - dostac sie do bazy i z jednego rekordu wydobyc dwie kolumny. Moj kod wyglada nastepujaco:

  1. <?php
  2. require_once('db.php'); // klasa umozliwiajaca korzystanie z obiektow PDO
  3. if(!$databaza = new DBConnector("serwerbazy","schematbazy","user","password","mysql","port") ) // nowy obiekt PDO
  4. {
  5. print "ACCESS DENIED TO DATABASE<br />";
  6. return false;
  7. }
  8. else
  9. {
  10. print "Sukces!";
  11. }
  12. $execute=$databaza->Query("SELECT PositionX FROM tabela WHERE id='1' AND nazwa='testowax'");
  13. $results=$execute->fetchAll(PDO::FETCH_COLUMN);
  14. $execute->closeCursor();
  15. print_r($results);
  16. ?>


No i wszystko dziala ladnie pieknie. Drukuje mi na ekranie "Sukces!", po czym ladniutko tabelke z jednym rekordem a w nim wypisane Array=>{[0]=>wartosc}. Tyle tylko, ze ja potrzebuje aby zapytanie mialo postac:
("SELECT PositionX,PositionY FROM tabela WHERE id='1' AND nazwa='testowax'");
Wtedy uzylbym PDO::FETCH_ASSOC, ale to w tym momencie jest nieistotne. Istotne jest to, że jak tylko zapodam do $execute zapytanie w takiej postaci to przegladarka wywala mi blad: unhandled exception in httpd.exe.
Moje zasadnicze pytanie brzmi : WTF ?!
Ponizej jakby to bylo istotne podaje cialo metody DBConnectora Query:
  1. public function Query($query)
  2. {
  3. if ($this->dbh==null)
  4. {
  5. $this->EstablishConnection();
  6. // print "Nawiazalem lacznosc z baza <br />";
  7. }
  8. //print($query);
  9. //print "<br />";
  10. $res=$this->dbh->query($query) //or die('Nie mozna wykonac qwerendy');
  11. or print_r($this->dbh->errorInfo());
  12. return $res;
  13. }//Queery
Go to the top of the page
+Quote Post
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Spróbój

  1. try {
  2.  
  3. ...
  4.  
  5. } catch(PDOException $e)
  6. {
  7. echo $e->getMessage();
  8. }


Może komunikat Cię na coś naprowadzi.



--------------------
Go to the top of the page
+Quote Post
Wilqu
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.09.2009

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


W ktorym miejscu ?
Bo jak uzylem :
  1. try{
  2. $execute=$databaza->Query("SELECT PositionX,PositionY FROM internal_layout i WHERE i.user='1' AND i.FormID='testowax'");
  3. $results=$execute->fetchAll(PDO::FETCH_COLUMN);
  4. $execute->closeCursor();
  5. print_r($results);
  6. }
  7. catch(PDOException $e)
  8. {
  9. echo $e->getMessage();
  10. }


to nadal nic nie wiem, jest to samo i tez wyskakuje mi okienko Debuggera z tym samym komunikatem
Go to the top of the page
+Quote Post
ucho
post
Post #4





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

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


To błąd w PHP lub rozszerzeniu PDO. Jeśli masz najnowszą wersję i nadal występuję taki problem zgłoś to na bugs.php.net
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 Aktualny czas: 22.08.2025 - 01:07