Ερώτηση για mysql - php

Giorgos Keramidas keramida at ceid.upatras.gr
Thu Dec 17 00:42:46 EET 2009


On Thu, 17 Dec 2009 00:14:31 +0200, panagiotis takis_rs <takispadaz at hotmail.com> wrote:
>> Πριν αρχίσεις τέτοιες "πονηριές" όμως, κάνε την ΑΠΛΗ λύση με ένα πίνακα
>> για 'movies', ένα για 'actors', κι ένα MxN relation πίνακα που εύκολα
>> και γρήγορα αντιστοιχεί ηθοποιούς σε ταινίες.
>
> Και κάτι τελευταίο.
>
> Εισάγω τα δεδομένα σε μια φόρμα και τα αποστέλλω για εισαγωγή.
>
> Προφανώς και θα πρέπει να γίνει insert στον πίνακα movies και έπειτα να
> καταχωρηθούν και οι ηθοποιοί στον πίνακα συσχέτισης για την
> συγκεκριμένη ταινία.
>
> Το id στον πίνακα movies είναι auto increment, επομένως θα πρέπει να
> ανακτήσουμε το id της ταινίας αυτής για τον insert στον πίνακα
> συσχέτισης.
>
> Απ' ότι είδα μια συνάρτηση που το κάνει αυτό είναι η mysql_insert_id().
> Τι συμβαίνει αν ταυτόχρονα εκτελείται ένα άλλο insert;
>
> Υπάρχει ποτέ περίπτωση να φέρει λάθος id;

Ανάλογα.  Πως ορίζεις το «λάθος id», ας πούμε;

Η συνάρτηση πάντα θα σου επιστρέψει ένα id.  Δεν κάνει, από όσο ξέρω,
κάποια προσπάθεια για «συγχρονισμό» μεταξύ διαφορετικών query source,
οπότε αν ταυτόχρονα εκτελεστεί άλλο insert την πάτησες.

Οπότε πρέπει να βρεις κάποιο άλλο τρόπο να πάρεις το id από το record
που μόλις έβαλες, π.χ. select με το όνομα που είχες κάνει insert ή να
βάζεις μαζί με το όνομα της ταινίας και ένα sha256 hash για το οποίο
μπορείς να κάνεις με σχετικά μικρή πιθανότητα conflict search αμέσως
μετά το insert.



More information about the Linux-greek-users mailing list