Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy mogą być problemy z mysql_insert_id() ??
Forum PHP.pl > Forum > Bazy danych > MySQL
rogrog
Witam!

Napisałem skrypt, który importuje dane z pliku tekstowego.

Polega to na tym, że najpierw należy dodać do bazy wartość do pierwszej tabeli.

[sql:1:90d16032e4]Id INT NOT NULL AUTO_INCREMENT,
Nazwa VARCHAR(255)[/sql:1:90d16032e4]

A następnie, do drugiej tabeli

[sql:1:90d16032e4]Id INT NOT NULL AUTO_INCREMENT,
Id_z_tabeli_pierwszej INT,
nazwa VARCHAR(255)[/sql:1:90d16032e4]

Chodzi o to, że dodając do drugiej tabeli rekord, skrypt potrzebuje id ostatnio wstawionego rekordu do tabeli 1

Żeby znaleźć to id wykorzystuję mysql_insert_id();
Wszystko działa OK, ale zastanawiam się, czy jeżeli inny użytkownik wykona akurat w tym momencie jakiegoś INSERTa do tej bazy, czy nie powstanie problem - użyty zostanie inny id questionmark.gif

Potrzebuję waszej opinii czy takie postępowanie jest bezpieczne dla prawidłowego importu i jak to zrobić bardziej niezawodnym.

Słyszałem o czymś takim jak LOCK TABLES - może to mogło by pomóc ale nie znam zasady działania i sposobu użycia.
rogrog
no co questionmark.gif

nikt sie nie zna tutaj na bazach danych lepiej niż ja? na pewno sie znacie - bo jestescie wymiatacze, widzialem w innych postach


jezeli moje pytanie jest niezbyt zrozumiałe, napiszcie - postaram sie je bardziej wytlumaczyc
Bags_Bunny
Cytat
mysql_insert_id() zwraca ID wygenerowane dla pola z własnością AUTO_INCREMENT. Funkcja zwróci ID wygenerowane automatycznie przez ostatnią operację INSERT używającą podanego identyfikatora_połączenia . Jeżeli identyfikator_połączenia nie został podany, wykorzystywane jest ostatnio otwarte połączenie.

oczywiscie chodzi o ostatnio otwarte polaczenie w danym skrypcie...
odpowiedz na twoje pytanie brzmi nie
rogrog
wielkie dzięki biggrin.gif uspokoiłeś mnie smile.gif
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.