Cytat
id ucznia
imię
nazwisko
ocena
imię
nazwisko
ocena
Będą dwie tabele:
Cytat
uczniowie - pola:
id
imię
nazwisko
id
imię
nazwisko
Cytat
oceny - pola:
id
ocena
id_ucznia
id
ocena
id_ucznia
Skrypt będzie wykrywał (po id ucznia, czyli po polu id z tabeli uczniowie) czy taki uczeń jest już w tabeli. Jeżeli jest - to po prostu skrypt doda ocenę do tabeli oceny. Jeżeli nie ma, to najpierw doda imię i nazwisko do tabeli uczniowie, a następnie doda ocenę do tabeli oceny.
I właśnie o ten drugi przypadek chciałem zapytać - czy jeżeli napiszę w skrypcie PHP po sobie dwa zapytania MySQL:
"
$sql = "INSERT INTO uczniowie (imie, nazwisko) VALUES ('Jan', 'Kowalski')"; $sql = "INSERT INTO oceny (ocena, id_ucznia) VALUES ('4', '437');
to czy jest gwarancja, że jako pierwsze doda się zawsze zapytanie, które jest pierwsze w kodzie (wpis do tabeli uczniowie)? Czy też może się coś zdarzyć (bardzo rzadko, ale jednak), że czasami jako pierwsze doda się zapytanie, które jest niżej w kodzie (wpis do tabeli oceny)? Jeżeli tak, to czy można się przed tym jakoś zabezpieczyć? Czy transakcje mogłyby tutaj pomóc?