Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z PDO
Forum PHP.pl > Forum > PHP
Wilqu
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
redeemer
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.

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