Ik ben bezig met een php form waar een bedrijf moet worden toegevoegd, maar als die wordt toegevoegd, dan moet er ook meteen iets in een andere tabel worden gezet die zelfde id mee krijgt. c_id in companies heeft een autoincrement en in linkbuilding dus niet.
de query hieronder is fout zoals jullie zelf ook wel zien, maar ik zou niet weten hoe ik het wel goed kan doen.
Ik heb het een beetje uit lopen vogelen, maar bij de 2e query kent hij de row companies niet, hoe zorg ik ervoor dat die weet dat ik c_id uit companies bedoel?
INSERT INTO companies VALUES ('', '7', 'TEST', '0' ); <--- werkt
INSERT INTO linkbuilding VALUES (LAST_INSERT_ID(companies), YEAR(NOW())); <--- deze niet
Dat gaat automatisch. De MySQL database zal zelf het laatst gegenereerde id binnen dezelfde connectie gebruiken. Als je er dus geen andere query tussen draait gaat het goed.
Nee, companies komt ook niet voor in 'linkbuilding'.
INSERT INTO foo (auto,text)
VALUES(NULL,'text'); # generate ID by inserting NULL
INSERT INTO foo2 (id,text)
VALUES(LAST_INSERT_ID(),'text'); # use ID in second table
Deze functie kan meerdere queries verwerken maar die moet je dan wel als één string meegeven.
Het werkt wel met mysqli_ functies en niet met mysql_ functies. Dit is tevens beter omdat mysql_ er langzaam uitgaat. Je moet dan alle mysql_ functies omzetten naar mysqli_ dus ook de mysql_connect functie bijvoorbeeld.
De (volgorde van) de parameters die je aan de functies meegeeft wijkt soms enigzins af van de mysql_ functies.