Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL][PDO]Proste skrypt pobierający wyniki, General error: 2014 Cannot execute queries while other unbuffered quer
matssuda
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 5
Dołączył: 7.02.2008

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


Witam.

Mam problem ze skryptem php łączącym się z MySql przez PDO i pobierającym wyniki.
Skrypt na serwerze (nazwa.pl) generuje błąd (na localu jest ok):
Cytat
General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.


Oto skrypt (uposzczony, ale chodzi o sens):

  1. <?php
  2. try
  3. {
  4. $pdo = new PDO(DATABASE, USER, PASS);
  5. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6.  
  7. $query_1 = $pdo->query('SELECT * FROM `tabela_1`');
  8.  
  9. while ($row=$query_1->fetch())
  10. {
  11. echo $row['tabela_1_id'];
  12.  
  13. $query_2 = $pdo->query('SELECT * FROM `tabela_2` WHERE tabela_2_id = '.$row['tabela_1_id'].' ');
  14.  
  15. while ($rows=$query_2->fetch())
  16. {
  17. echo $rows['tabela_2_id'];
  18.  
  19. }
  20.  
  21. $query_2 -> closeCursor(); 
  22.  
  23. }
  24.  
  25. $query_1 -> closeCursor(); 
  26.  
  27. }
  28.  
  29. catch(PDOException $e)
  30. {
  31. echo 'Nie polaczono: ' . $e->getMessage();
  32. }
  33. ?>


Czytałem, że to błąd niezamknięcia połączenia i wywoływanie drugiego.
Ale nie mam zielonego pojęcia jak to uzyskać inaczej.
Nie gromcie od razu, jestem w przedszkolu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
szpakoo
post
Post #2





Grupa: Zarejestrowani
Postów: 122
Pomógł: 16
Dołączył: 19.04.2007

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


Cytat
Czytałem, że to błąd niezamknięcia połączenia i wywoływanie drugiego.
Ale nie mam zielonego pojęcia jak to uzyskać inaczej.

no jeśli chodzi o to to powinieneś zmienic
  1. <?php
  2. //to
  3. $query_1 -> closeCursor(); 
  4. //na to
  5. $query_1 -> closeCursor(); 
  6. $query_1=NULL;
  7. //analogicznie w innych zapytaniach kursora
  8. ?>


ale warto spojrzeć na Twoje zapytania żeby zobaczyć, że niepotrzebnie wywołujesz dwa zapytania, można ten sam efekt uzyskać jednym, no chyba że tak uprościłeś kod podany na forum że jest inaczej
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 05:15