![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 7.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Czy wymagane jest używanie closeCursor()? W kodzie przedstawionym poniżej nic nie wnosi czy użyje czy też nie to i tak mogę wykonać kolejne zapytanie. Macie jakiś przykład na którym można zobaczyć istotę działania closeCursor()?
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
W niektórych przypadkach (driver-specific) zwiększa wydajność, zresztą wszystko jest tu: http://www.php.net/manual/en/pdostatement.closecursor.php
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 7.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Przed napisaniem posta na forum dokładnie przeczytałem informacje ze strony którą podałeś. Sądząc po odpowiedzi nie jest to wymagane ino zalecane. Czy się mylę? Bo widziałem w kilku opisach PDO "po zakończeniu pobierania danych niezbędne jest ich zamknięcie, aby móc wykonać kolejne zapytania!" a jak widać kod który wkleiłem w pierwszym poście działa i nie muszę do tego zamykać kursora.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tu naprawdę jest wszystko napisane:
Cytat (...) To ensure that the application will work with all database drivers, the author inserts a call to PDOStatement::closeCursor() on $stmt before executing the $otherStmt PDOStatement object. <?php /* Create a PDOStatement object */ $stmt = $dbh->prepare('SELECT foo FROM bar'); /* Create a second PDOStatement object */ $otherStmt = $dbh->prepare('SELECT foobaz FROM foobar'); /* Execute the first statement */ $stmt->execute(); /* Fetch only the first row from the results */ $stmt->fetch(); /* The following call to closeCursor() may be required by some drivers */ $stmt->closeCursor(); /* Now we can execute the second statement */ $otherStmt->execute(); ?> (...) Generalnie lepiej używać closeCursor() dla lepszej przenośności pomiędzy różnymi bazami danych, nigdy nic nie wiadomo, kiedyś może okazać się, że Twój Klient będzie chciał zmienić typ bazy danych na inny, teoretycznie PDO to umożliwia, więc lepiej zamykać kursor, aby uniknąć potencjalnych problemów. Ten post edytował darko 16.11.2009, 19:17:26 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 7.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 20:16 |