Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: identyfikator połączenia z bazą
Forum PHP.pl > Forum > PHP
szczypior
Witam

Chciałbym się upewnić czy dobrze rozumiem idee identyfikatorów połączenia.

  1. <?php
  2. $link = mysql_connect("localhost", "user", "pass") or die('Błąd podczas nawiązywania połączenia: ' . mysql_error());
  3. mysql_select_db("baza", $link) or die('Błąd podczas wybierania bazy danych: ' . mysql_error());
  4. $result = mysql_query("INSERT INTO tabela (1,2) VALUES ('1','2')", $link)
  5. ?>


W ten sposób zmienna $link jest tym identyfikatorem i dzięki niemu mogę teraz bezpiecznie skorzystać z funkcji mysql_insert_id($link) aby pobrac id z rekordu dodanego dokładnie w tym zapytaniu a nie z rekordu dodanego przez innego użytkownika ułamek sekundy później. O to w tym chodzi?
SongoQ
TAK
l0ud
I tak możesz bezpiecznie z niej skorzystać - nawet bez identyfikatora. Przy każdym połączeniu z bazą za pomocą mysql_connect jest tworzony i wczytywany do pamięci unikalny identyfikator, który jest wykorzystywany gdy nie podasz go ręcznie. Nie ma możliwości, by skrypt natrafił na identyfikator stworzony przez inne jego wywołanie. Ta sytuacja o której piszesz po prostu nie może nastąpić.
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.