Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL][PDO] Coś dziwnego się dzieje z query...
pks
post
Post #1





Grupa: Zablokowani
Postów: 16
Pomógł: 0
Dołączył: 20.03.2009

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


Witam wszystkich Forumowiczy smile.gif

Jakiś czas temu napisałem sobie klasę do obsługi PDO. Wszystko pięknie działało na XAMPPie, ale po reinstalacji Windowsa i zainstalowaniu nieco nowszej wersji XAMPPa nagle zaczęły się dziać jaja.
Wszystko działa dobrze (tzn. pozostale funkcje w tej klasie, np. insert, delete, itp) oprócz funkcji query, która wygląda następująco:

Kod
public function query($query) {
           $data = array();
           try {
               $result = $this->dbhandle->prepare($query);
               $result->execute();        
               $data = $result->fetchAll();
              
               print_r($query . '<br/>' . $data);  //miejsce nr 1
              
               $result->closeCursor();
               unset($result);
           } catch(PDOException $e) {
               echo "Błąd PDOException w funkcji query - ".$e->getMessage(). "<br/>";
               die();
           }
           return $this->strip_slashes($data);
       }


w miejscu nr jeden wstawiłem sobie print_r aby mi wyświetlało co i jak. Gdy załaduje to na dreamhost.com, to pokazuje mi, że $data jest Array, ale tylko to. Natomiast gdy odpalę to u siebie na kompie, to mam błąd Przerwane połączenie. Połączenie z serwerem zostało zresetowane podczas wczytywania strony. Połączenie sieciowe zostało przerwane podczas negocjacji. Spróbuj ponownie.

Moje spostrzeżenie jest takie, że coś tu zawsze było nie tak, po dopiero ostatnio sprawdziłem to na dreamhoscie, chyba że oni też robili reinstalke ;p

Dodam, że tej funkcji używam tylko do zapytania SELECT.

Pozdrawiam i błagam o ratunek!

Po dłuższej analizie sprawdziłem, że przy pobieraniu jednej kolumny z tabeli, np. SELECT name FROM users wszystko dziala dobrze. Ale, przy zapytaniu typu SELECT name,id FROM users lub np. SELECT * FROM users program się wysypuje sad.gif
ktoś się spotkał z czymś takim?

Ten post edytował pks 20.03.2009, 20:01:24
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #2





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Jeśli nie korzystasz z podpinania użyj funkcji query, a nie prepare->execute.
Podobny błąd dostawałem przy testach mojego skryptu, tyle że on nawet nie łączył się w tym momencie z bazą, ale miał parę print_r'ów, próbowałeś bez print_r? To chyba nie jest poprawne użycie tej funkcji? Nie powinno się łączyć stringa z tablicą.
Go to the top of the page
+Quote Post
pks
post
Post #3





Grupa: Zablokowani
Postów: 16
Pomógł: 0
Dołączył: 20.03.2009

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


niby w manualu piszą, że jak dużo zapytań to prepare-execute jest szybsze smile.gif ale zmieniłem na zwykłe query to też nic nie dało sad.gif
print_r tez usunąlem i bez zmian.

Jak tylko jedną kolumnę wybieram to ok, a jak więcej jak jedną to nawet mi strony nie wyswietla tylko pokazuje 'nie mozna wyswietlic strony' po próbie przekierowania na localhost.com smile.gif dodam, ze nie mam zadnego przekierowania w kodzie, wiec to tym bardziej ciekawe - zupełnie jakby nie mogło znaleźć strony po zmianie jednej linijki kodu, toz to bez sensu

pustka w głowie, kombinuje już tydzień i nic...

Myslalem, ze moze klasę popsulem, albo cos, ale nawet jak robię plik taki jak ponizej to nie dziala... sad.gif

Kod
<?php

$dbhandle;

$dbhandle = new PDO("mysql:host=localhost;dbname=phpmyadmin", 'root', '');
$dbhandle->setAttribute(PDO::ATTR_PERSISTENT, true);
$dbhandle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
        
$query = "SELECT * FROM `pma_history`";

$result = $dbhandle->prepare($query);          
$result->execute();
$data = $result->fetchAll();        
print_r($data);
$result->closeCursor();
unset($result);


?>

Ten post edytował pks 22.03.2009, 21:02:19
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: 21.08.2025 - 21:48