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 ;-)
?
Onbekende gebruiker
19-01-2012 14:49
gewijzigd op 19-01-2012 14:50
- 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')";
?>
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="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.
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.
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.