Likes Likes:  0
Resultaten 1 tot 8 van de 8
Geen

Onderwerp: php /mysql vraagje

  1. #1
    Paul van der Vlis
    php /mysql vraagje
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    php /mysql vraagje

    Hoi,

    Ik wil een nieuw record toevoegen, en daar later van alles in gaan
    stoppen. Daarom moet ik het ID van dat record te weten komen, maar dat
    wordt automatisch gegenereerd. Hoe kom ik nu achter dat ID?

    Ik doe nu zoiets:

    $sql="INSERT INTO $tabel (clientid) VALUES ('$clientid');
    $result = mysql_query($sql);

    en zou in feite graag uit die $result kunnen halen wat het ID is van het
    record wat is toegevoegd. Kan dat ook?

    Als dat niet kan, is er dan misschien een andere manier om een record
    toe te voegen en dan wel precies te weten welk record dat is?

    Ik kan namelijk wel het laatste record nemen met dat clientid, maar
    helemaal veilig is dat niet...

    Groet,
    Paul.


  2. #2
    Ronald Paul
    php /mysql vraagje
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: php /mysql vraagje

    Paul van der Vlis <paul@vandervlis.nl> schreef:

    >Ik wil een nieuw record toevoegen, en daar later van alles in gaan
    >stoppen. Daarom moet ik het ID van dat record te weten komen, maar dat
    >wordt automatisch gegenereerd. Hoe kom ik nu achter dat ID?


    Kijk eens naar mysql_insert_id().

    --
    Groet, Ronald

  3. #3
    Maarten Wierda
    php /mysql vraagje
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: php /mysql vraagje

    Paul van der Vlis wrote:

    > Hoi,


    Hoi.

    > Ik wil een nieuw record toevoegen, en daar later van alles in gaan
    > stoppen. Daarom moet ik het ID van dat record te weten komen, maar dat
    > wordt automatisch gegenereerd. Hoe kom ik nu achter dat ID?
    >
    > Ik doe nu zoiets:
    >
    > $sql="INSERT INTO $tabel (clientid) VALUES ('$clientid');
    > $result = mysql_query($sql);
    >
    > en zou in feite graag uit die $result kunnen halen wat het ID is van het
    > record wat is toegevoegd. Kan dat ook?


    Jazeker, zie <http://nl.php.net/manual/en/function...-insert-id.php>.

    > Als dat niet kan, is er dan misschien een andere manier om een record
    > toe te voegen en dan wel precies te weten welk record dat is?


    Je kan na het inserten een SELECT uitvoeren en dan controleren met exact
    die gegevens die je hebt toegevoegd, maar dit is niet waterdicht,
    theoretisch gezien dan

    > Ik kan namelijk wel het laatste record nemen met dat clientid, maar
    > helemaal veilig is dat niet...


    Klopt. Stel je voor dat je dit gebruikt in een webshop, dan kunnen
    meerdere gebruikers elkaars bestelling overnemen :-(

    --
    Cheers, Maarten Wierda

    "Teenage angst has paid off well, now I'm bored and old"


  4. #4
    Paul van der Vlis
    php /mysql vraagje
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: php /mysql vraagje

    Hoi,

    Beide hartelijk bedankt, mysql_insert_id() was precies wat ik nodig had.

    Het verbaast me overigens wel dat dit werkt:

    $sql="INSERT INTO $tabel (clientid) VALUES ('$clientid');
    $result = mysql_query($sql);
    $id = mysql_insert_id();

    En dit niet:

    $sql="INSERT INTO $tabel (clientid) VALUES ('$clientid');
    $result = mysql_query($sql);
    $id = mysql_insert_id($result);

    Want dat geeft een foutmelding als dit:
    Warning: mysql_insert_id(): supplied argument is not a valid MySQL-Link
    resource

    Krijg ik met die eerste oplossing wel zeker het goede resultaat?

    Groetjes,
    Paul.


  5. #5
    Maarten Wierda
    php /mysql vraagje
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: php /mysql vraagje

    Paul van der Vlis wrote:

    > Het verbaast me overigens wel dat dit werkt:
    >
    > $sql="INSERT INTO $tabel (clientid) VALUES ('$clientid');
    > $result = mysql_query($sql);
    > $id = mysql_insert_id();
    >
    > En dit niet:
    >
    > $sql="INSERT INTO $tabel (clientid) VALUES ('$clientid');
    > $result = mysql_query($sql);
    > $id = mysql_insert_id($result);


    De variabele mysql_insert_id() bevat het ID van het laatste toegevoegde
    record. In de user comments lees ik overigens het volgende:

    Check with (mysql_affected_rows()>0) if mysql_insert_id() returns a real
    id.

    <?php
    if (mysql_affected_rows()>0) $id=mysql_insert_id();
    ?>

    Dit zou ik even testen voor de zekerheid.

    > Krijg ik met die eerste oplossing wel zeker het goede resultaat?


    Ja.

    --
    Cheers, Maarten Wierda

    "Teenage angst has paid off well, now I'm bored and old"


  6. #6
    Ronald Paul
    php /mysql vraagje
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: php /mysql vraagje

    Paul van der Vlis <paul@vandervlis.nl> schreef:

    > Het verbaast me overigens wel dat dit werkt: $id = mysql_insert_id();
    > En dit niet: $id = mysql_insert_id($result); Want dat geeft een
    > foutmelding als dit: Warning: mysql_insert_id(): supplied argument is
    > not a valid MySQL-Link resource


    Mij niet, want een MySQL-result identifier (hetgeen wat mysql_query()
    teruggeeft) is niet hetzelfde als een MySQL-link resource (hetgeen wat
    mysql_connect() teruggeeft) :-)

    --
    Groet, Ronald

  7. #7
    Paul van der Vlis
    php /mysql vraagje
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: php /mysql vraagje

    Ronald Paul wrote:
    > Paul van der Vlis <paul@vandervlis.nl> schreef:
    >
    >
    >>Het verbaast me overigens wel dat dit werkt: $id = mysql_insert_id();
    >>En dit niet: $id = mysql_insert_id($result); Want dat geeft een
    >>foutmelding als dit: Warning: mysql_insert_id(): supplied argument is
    >>not a valid MySQL-Link resource

    >
    > Mij niet, want een MySQL-result identifier (hetgeen wat mysql_query()
    > teruggeeft) is niet hetzelfde als een MySQL-link resource (hetgeen wat
    > mysql_connect() teruggeeft) :-)


    Aha, ik begrijp het. Bedankt.

    Groet,
    Paul.


  8. #8
    Paul van der Vlis
    php /mysql vraagje
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: php /mysql vraagje

    Maarten Wierda wrote:
    > Paul van der Vlis wrote:
    >
    >> Het verbaast me overigens wel dat dit werkt:
    >>
    >> $sql="INSERT INTO $tabel (clientid) VALUES ('$clientid');
    >> $result = mysql_query($sql);
    >> $id = mysql_insert_id();
    >>
    >> En dit niet:
    >>
    >> $sql="INSERT INTO $tabel (clientid) VALUES ('$clientid');
    >> $result = mysql_query($sql);
    >> $id = mysql_insert_id($result);

    >
    >
    > De variabele mysql_insert_id() bevat het ID van het laatste toegevoegde
    > record. In de user comments lees ik overigens het volgende:
    >
    > Check with (mysql_affected_rows()>0) if mysql_insert_id() returns a real
    > id.
    >
    > <?php
    > if (mysql_affected_rows()>0) $id=mysql_insert_id();
    > ?>
    >
    > Dit zou ik even testen voor de zekerheid.


    Ja, ik had het ook al gezien. Bedankt.

    >> Krijg ik met die eerste oplossing wel zeker het goede resultaat?

    >
    > Ja.


    Bedankt.

    Groet,
    Paul.



Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics