Autor Zpráva
tomas2245
Profil
Zdravím, nedávno som riešil v tomto témate veci okolo tabuliek.. a zistilo sa že by časom mohli byť problémy so zapisovaním atď...: Select z několika tabulek pomocí UNIONu
konkrétne reagujem na príspevky:
[#16] = CZechBoY: To asi nebude moc atomicky... Mozna s pouzitim lock table to bude ok.

[#17] = pcmanik: Riešením sú transakcie + plus správne zamykanie tabuliek.

neviem si dať rady už dlhšie si lámem hlavu tým, ako ich mám správne zamykať...
vedel by mi niekto pomôcť ako do tohoto kódu zakomponovať zamykanie?

Vopred ďakujem za každú radu :)

    $meno = $_POST['meno'];
    $priezvisko = $_POST['priezvisko'];
    $mesto = $_POST['mesto'];
    $ulica = $_POST['ulica'];
    
$zapis = mysqli_query($pripoj,"INSERT INTO objednavky (meno, priezvisko, mesto, ulica) VALUES ('$meno', '$priezvisko', '$mesto', '$ulica'')");
Alphard
Profil
V tom příkladu, který je ukázaný tady, vůbec nevidím důvod něco zamykat. Spíš vycházím z toho odkázaného vlákna, konkrétně struktura navržená v Select z několika tabulek pomocí UNIONu.
Stačí nastavit unikátní klíč a kontrolovat případnou chybu na hlášení o doplicitích (a dotaz zopakovat).

Na druhou stranu, mnohem víc by mě stresovala ta zjevná sql injection zranitelnost, než dosti hypotetická kolize pořadí zákazníka.
tomas2245
Profil
Alphard:
Vďaka za odpoveď, a proti sql injection to mám zabezpečené, zabudol som napísať že som do [#1] príspevku pridal len tie najpodstatnejšie veci
inak ešte otázka, hrozí len duplicitné poradie zákazníka, alebo by sa mohlo stať aj to, že by napr. priezvisko zákazníka sa priradilo niekomu inému?

    $meno = htmlspecialchars(mysqli_real_escape_string($pripoj,$meno));
    $priezvisko = htmlspecialchars(mysqli_real_escape_string($pripoj,$priezvisko));
    $mesto = htmlspecialchars(mysqli_real_escape_string($pripoj,$mesto));
    $ulica = htmlspecialchars(mysqli_real_escape_string($pripoj,$ulica));
Alphard
Profil
Vkládané hodnoty se mezi dotazy samozřejmě promíchat nemohou. Jde jen o to, kde se berou, jestli nejsou vypočítané za situace, která se změnila. Přijmení se tedy pomíchat nemůže.
tomas2245
Profil
Alphard:
super, ďakujem, toto som potreboval vedieť :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0