Beste lezer,

ik heb heel even een vraagje om het command mysql_insert_id()
Ik heb begrepen dat ik hiermee de ID kon ophalen van de laatste insert query die je doet in een script.

echter als ik deze wegschrijf naar een variable dan krijg ik als antwoord 0

iemand enig idee hoe ik dit het beste kan doen ? heb deze ID namelijk nodig voor een volgende query welke bij de volgende query gebruikt moet worden.

heb al een blik geworpen op : mysql_insert_id(); maar helaas word ik daar niet veel wijzer van.

alvast bedankt voor jullie reacties

voorbeeld qeury die ik gebruik
[code]<?php
//INSERT gegevens in database
$qry3 = "INSERT INTO tablea(colluma,collumb,collumc,) VALUES('$var1','$var2','$var3')";

//Dit is het company ID
$id_qry1 = mysql_insert_id();

$qry4 = "INSERT INTO tablea(colluma,collumb,collumc,collumd) VALUES('$var1','$var2','$var3','$id_qry1')";
?>
[code]
Je moet uiteraard wel je query eerst uitvoeren ;-)
- Aar - op 19/01/2012 14:47:29

Je moet uiteraard wel je query eerst uitvoeren ;-)



Ja idd, dus op deze manier:


<?php
//INSERT gegevens in database
$qry3 = "INSERT INTO tablea(colluma,collumb,collumc,) VALUES('$var1','$var2','$var3')";

$sInsert = mysql_query($qry3);

//Dit is het company ID
$id_qry1 = mysql_insert_id();

$qry4 = "INSERT INTO tablea(colluma,collumb,collumc,collumd) VALUES('$var1','$var2','$var3','$id_qry1')";
?>
ja nu je het zecht.
heb er een zooi van gemaakt tijd om eens te gaan puinruimen.

Mercy Aar. hij pakt hem nu wel uiteraard.
Rick de Graaff,

Het voorbeeld wat jij geeft is niet goed.
Ik mis daar foutafhandeling.

Kijk eens in deze tutorial hoe je een foutafhandeling correct toepast. klik

Daarnaast is het beter op bij alle mysql_* functies je resource mee te geven. Dit voor alle zekerheid.

Toevoeging: Variabelen uit de quotes ;-) Lees in de tut die ik je gaf waarom en hoe je dit kunt oplossen.

Niels Kieviet.
@Niels Kieviet, wou je zeggen dat je dit moet doen dan?


<?php
mysql_insert_id($mResult) or die("Insert fout: ".mysql_error());
?>


Doe dit bij een insert_id namelijk nooit, want ik weet van me eigen scripts dat er wel een waarde in komt te staan.
Niels Kieviet op 19/01/2012 16:04:19

Toevoeging: Variabelen uit de quotes ;-) Lees in de tut die ik je gaf waarom en hoe je dit kunt oplossen.


Beste Niels,

Ondanks dat je aanraad variablen buiten quotes te houden is mijn ervaring met SQL query's dat wanneer je in een variable spaties en of speciale tekens heb staan je fouten krijg bij het verwerken van query's. das mijn reden waarom ik mijn variablen altijd in tussen qoutes heb staan
Marco van Wyngaarden op 19/01/2012 16:12:57

[quote="Niels Kieviet op 19/01/2012 16:04:19"]
Toevoeging: Variabelen uit de quotes ;-) Lees in de tut die ik je gaf waarom en hoe je dit kunt oplossen.


Beste Niels,

Ondanks dat je aanraad variablen buiten quotes te houden is mijn ervaring met SQL query's dat wanneer je in een variable spaties en of speciale tekens heb staan je fouten krijg bij het verwerken van query's. das mijn reden waarom ik mijn variablen altijd in tussen qoutes heb staan

[/quote]
Als je het goed doet, en logisch kijkt, kan er niks mis gaan.

Beste Rick de Graaff,

Nee, or die moet je nooit gebruiken. Lees hoofdstuk 5 van de tutorial die ik gaf eens. Daarin wordt uitgelegd waarom je or die niet gebruiken. Ook wordt er uitgelegd hoe je wel een nette foutafhandeling bouwt.

Ook bij [php]mysql_insert_id[/php] moet je foutafhandeling toepassen. Als je op PHP.net kijkt zie je dat [php]mysql_insert_id[/php] diversen waarden kan retourneren. Wanneer er iets is fout gegaan retourneert de functie een false (Bijvoorbeeld wanneer er geen connectie aanwezig is). Dat betekend dus dat je moet controleren of de functie geen false retourneert. Wanneer dit wel het geval is mag je de volgende query niet uitvoeren.

Tot slot mag je er nooit van uit gaan of er een waarde in komt te staan. De query kan ook mislukken doordat de (My)SQL server plat is, of bedenk maar een andere reden. Dan gaat de zin: `want ik weet van me eigen scripts dat er wel een waarde in komt te staan` niet op.

Niels Kieviet
Marco van Wyngaarden op 19/01/2012 16:12:57
Ondanks dat je aanraad variablen buiten quotes te houden is mijn ervaring met SQL query's dat wanneer je in een variable spaties en of speciale tekens heb staan je fouten krijg bij het verwerken van query's. das mijn reden waarom ik mijn variablen altijd in tussen qoutes heb staan

Dat is net zoiets als ob_* gebruiken geen oplossing maar een pleister waarmee je hoopt alles op te lossen.

Als je de query's fatsoenlijk maakt is er geen probleem met spaties rare tekens etc.

Reageren