PDO transaction prepared statements

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

Front-end developer - working on software for arou

Functie They have recently started looking for an experienced Front-end (mobile/app) developer. Because of the short lines within the team, they are also looking for someone who can communicate with the service desk, sales and support for technical questions. You will join their IT team consisting of about 10 colleagues divided over two teams in rooms opposite each other. Half of these are involved in their front-end. You will work together with, among others, the Architect, 1 senior, 1 junior and there is a Team Leader. In terms of technology, they work with a unique tech-stack, particularly because of the

Bekijk vacature »

.NET developer

Functie Als developer heb jij de keuze om aan te sluiten bij het team (13 developers) die op locatie projectmatig bij klanten werkt. Wanneer jij liever intern bij de werkgever werkt is er ook alle ruimte voor jou in het interne team (8 developers) van dit bedrijf. Je werkt samen aan verschillende projecten bij of voor de klant. Het project wordt aangeleverd door sales aan de project manager. Die maakt samen met de Resourcer een planning en op basis daarvan wordt uit het development team een “projectgroep” opgesteld. Hoeveel en welke projecten jij wilt oppakken gebeurt geheel in samenspraak met

Bekijk vacature »

Fullstack developer (NodeJS, React, AWS)

Functie Als Fullstack developer kom je te werken in het ontwikkelteam, maar zoals gezegd komt er veel meer bij kijken dan alleen maar ontwikkelen. Je bent samen met je collega’s continu bezig om de software uit te breiden maar hiernaast doe je doorlopend onderzoek naar de inzet van bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Maar waar staan ze nu? Na een onderzoeksfase van ruim een jaar zijn

Bekijk vacature »

(Lead) PHP Software Developer

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een PHP software developer met een aantal jaar werkervaring. Je krijgt een plek in een klein team met 2 andere software developers. Wil jij graag werken met de nieuwste technieken bij een bedrijf waar jij de lead gaat nemen in de verder ontwikkeling en modernisering van een eigen software pakket? Dan ben je hier aan het juiste adres! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "in-house" ontwikkelde multimedia platform. Je neemt de lead in

Bekijk vacature »

Cobol Developer

Dit ga je doen Als Cobol Ontwikkelaar zal je gaan meebouwen aan een onderdeel van het backend systeem waarbij je het functionele ontwerp vertaald naar een technische oplossing die geïntegreerd kan worden in de huidige omgeving. Je zorgt ervoor dat de bedrijfsprocessen op een efficiënte manier worden uitgevoerd en werkt proactief aan het verbeteren hiervan. Samen met jouw collega’s reviewen jullie elkaars code en test je je eigen code. Je werkt nauw samen met andere ontwikkelaars, testers en functioneel ontwerpers. Taken pakket: Beheren en doorontwikkelen van de bestaande omgeving; Vertalen van een functionele vragen naar een technische oplossing; Doorvoeren van

Bekijk vacature »

Als Lead PHP developer bijdragen aan het onderwijs

Functie Als Lead PHP developer zet je samen met het team en de andere lead developers de technische lijnen uit als het gaat om het ontwikkelen van de applicaties en bepaal je samen met de PO waar elke sprint aan gewerkt zal worden. Je kunt op basis van een user story een goede aanpak formuleren en een planning opstellen, en andere hierin meenemen. Wanneer je team code schrijft verwacht je degelijke oplossingen, bij voorkeur gebruik makend van Domain Driven Design. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

.NET developer

Functie Heb jij veel kennis van ASP.NET Webforms en wil jij juist de overstap maken naar ASP.NET Core? Wij zijn per direct op zoek naar een ervaren .NET Webdeveloper die met ons samen ons platform wilt herschrijven van ASP.NET Webforms naar ASP.NET Core. Voor jou de unieke kans om met ons samen te innoveren en kennis op te doen van de nieuwste technieken binnen de Microsoft Stack. Wij hebben een development team met 10 IT specialisten bestaande uit onder andere 4 backend .NET developers en twee front-end developers. Wij zijn continu bezig om ons als team en bedrijf te blijven

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

Software Developer

Functie omschrijving Veel begeleiding en de kans om je verder te ontwikkelen als software developer. Dat kunnen wij jou bieden bij deelname aan deze leuke traineeship. Je krijgt een mentor toegewezen die jou alle kneepjes van het vak leert. Heb jij al wat ervaring als software developer? Daar worden wij heel blij van! Lees snel verder! Bedrijfsprofiel Als software developer neem je deel aan een trainings programma in de omgeving van Haarlem waar je persoonlijk wordt begeleidt, zodat je alle kneepjes van het vak leert. Aan de hand van jouw kennis en ervaring krijg je een persoonlijk opleidingstraject. Je gaat

Bekijk vacature »

Senior PHP Developer

As a Senior PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible and you choach other colleagues on the hard and soft skills. How do I become a Senior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the

Bekijk vacature »

Pagina: « vorige 1 2

Ward van der Put
Moderator

Ward van der Put

24/04/2014 11:30:51
Quote Anchor link
De rollBack() herstelt alles, dus ook de last insert ID. Als je de $db->lastInsertId() van de prepared statement nodig hebt in een tweede query, wordt je eerste voorbeeld zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
$sql
= '
    INSERT
        INTO '
. TABLE_PREFIX . 'profile
        (
            naam
        )
        VALUES
        (
            :naam
        )
'
;
$stmt = $db->prepare($sql);
$stmt->bindParam(':naam', $_POST['gegevens']['naam'], PDO::PARAM_STR);

// Vanaf hier willen we alle wijzigingen kunnen terugrollen
$db->beginTransaction();

try {
    $stmt->execute();
    $sql = '
        INSERT
            INTO '
. TABLE_PREFIX . 'application
            (
                profile_id
            )
            VALUES
            (
                '
. $db->lastInsertId() . '
            )
    '
;
    $db->query($sql);
    $db->commit();
}
catch (PDOException $e) {
    $db->rollBack();
}

?>


Wat je je wel kunt afvragen, is of het mislukken van die tweede INSERT zo erg is. Je wilt kennelijk een profiel toevoegen en met dat nieuwe profiel een applicatie toevoegen. Dat kun je ook splitsen in PHP. Met andere woorden: je datamodel bevat een soort één-op-één-afhankelijkheid die misschien niet per se nodig is. Of misschien zelfs een één-op-één-afhankelijk die eigenlijk gewoon in één tabel thuishoort.
 
PHP hulp

PHP hulp

17/11/2024 05:54:45
 
Michael -

Michael -

24/04/2014 11:54:02
Quote Anchor link
>> De rollBack() herstelt alles, dus ook de last insert ID
Wat bedoel je hiermee? De auto_increment wordt wel opgehoogd, dus het is eerder toevoegen->error->verwijderen, dan voorbereiden->error->herstellen.

Waarom de keuze om try pas vanaf regel 19 te doen en niet bovenaan?

Als de tweede of derde, vierde, etc insert mislukt heeft de eerste ook niet zoveel zin. Het gaat namelijk om één formulier dat wordt opgeslagen. Ik verspreid het over meerdere tabellen omdat ik niet weet hoeveel rijen van alles wordt toegevoegd. En het ook mogelijk is dat de zelfde naam nog een 'application' toevoegt.

Is het gebruik van de last insert id wel goed dan? Want ik ga nou twijfelen door jouw reacties. Hoe doe jij dit? En misschien dat het makkelijker is deze in een koppeltabel te zetten, maar dat is denk ik een heel andere vraag en dan zou je het op de zelfde manier moeten doen.
 
Ward van der Put
Moderator

Ward van der Put

24/04/2014 12:07:25
Quote Anchor link
In de catch voer je nu een rollBack() uit. Maar niet elke PDOException hoeft een fout te zijn die moet worden afgehandeld met het terugrollen van alle INSERTs. Het eerste deel, het voorbereiden van de prepared statements, vraagt dus om een andere foutafhandeling. In dit stadium kun je bijvoorbeeld de databaseverbinding verliezen: voor de data heeft dat dan nog geen gevolgen.

Of het hergebruik van de ID verspreid over meerdere tabellen wel helemaal juist is, is zo moeilijk te beoordelen. Dat is een andere vraag; misschien kun je het inderdaad beter met een koppeltabel oplossen. Kun je iets van het datamodel laten zien?

Ik zou een transactie alléén in zijn geheel laten lukken/mislukken als het echt niet anders kan. Maar als de INSERTs eventueel wel gesplitst mogen worden, dan heb je niet per se een transactie nodig. Een INSERT ... ON DUPLICATE KEY ... is soms bijvoorbeeld een betere oplossing.
 
Michael -

Michael -

24/04/2014 13:25:53
Quote Anchor link
>> In de catch voer...
Ja dat klopt wel. Daar had ik zelf nog niet zo aan gedacht. Aan de andere kant, als er geen verbinding kan er ook niks geinsert worden.

>> Of het hergebruik
Hier een schets van m'n database
Volgens mij was een koppel inderdaad beter geweest. Dan kan ik ook makkelijker koppelen wanneer er 2 zelfde profielen zijn. Dat kan nu niet. Het is nu alleen om de boel bij elkaar te houden.

>> Ik zou een transactie
True, maar wat heb je aan halve data? Als de eerste 3 tabellen wel worden geinsert, maar de 4e gaat fout, wordt de 5e toch ook niet geinsert? Dus dan is de data incompleet.

Wat doet ON DUPLICATE KEY (UPDATE?) precies en wanneer zou je dit toepassen?
 
Ward van der Put
Moderator

Ward van der Put

24/04/2014 13:38:58
Quote Anchor link
Als je eerst een SELECT COUNT(*) uitvoert om vervolgens bij if (... == 0) een INSERT of een UPDATE uit te voeren, doe je dubbel werk. Bovendien trek je (afhankelijk van de engine) vanwege een eventuele table lock voor de totaaltelling een enorme wissel op de performance: die gooit de hele tabel tijdelijk op slot. Daar kun je beter één INSERT ... ON DUPLICATE KEY UPDATE ... van maken.

In PHP wordt dat "dus" vooral vaak verkeerd aangepakt in mappers, bijvoorbeeld een UserMapper. Dan gaat de ene methode eerst controleren of iets al bestaat voordat één van twee andere methoden respectievelijk een INSERT of een UPDATE kan uitvoeren. Dat is vaak nergens goed voor.
 
Michael -

Michael -

24/04/2014 13:48:25
Quote Anchor link
>>> Als je eerst een SELECT COUNT(*) uitvoert om vervolgens bij if (... == 0) een INSERT of een UPDATE uit te voeren, doe je dubbel werk.

Guilty :) Dus INSERT...ON DUPLICATE KEY UPDATE is een controle of bijvoorbeeld een naam al bestaat. Zo ja, updaten, Zo nee dan inserten. Had ik dat maar eerder geweten.

Maar ik snap nog niet helemaal de link met de rollback, want in mijn geval wordt er één formulier ingevuld en opgeslagen. Zou ik dan een controle moeten doen of ingevulde waardes al bestaan in 'profile', dan updaten, anders inserten? Waar zou ik dan op moeten controleren, en wat moet ik updaten, want misschien wil de persoon wel 2 verschillende dingen opslaan... Je maakt het er niet makkelijker op :)

Wat vond je van het datamodel? Koppeltabel gebruiken?
 
Ward van der Put
Moderator

Ward van der Put

24/04/2014 14:17:53
Quote Anchor link
Als je nu al weet dat je de data eigenlijk moet uitsplitsen, zou ik eerst verder gaan normaliseren. Je krijgt anders een oplossing die met "plakband en elastiek" aan elkaar hangt. En dan moet je het later alsnog weer over doen.

Je kunt een INSERT ... ON DUPLICATE KEY UPDATE ... gebruiken om de data die je al hebt alvast op te slaan, zelfs als de gebruiker nog een paar schermen met foutmeldingen en vragen nodig heeft om het geheel af te ronden. Sla de ID op in een sessie en laat die als de DUPLICATE KEY het werk doen.

Je kunt het dus zien als alternatief voor een transactie waarbij echt alles in één keer goed of in één keer fout moet gaan.

De ene oplossing is flexibel, de andere rigide, dus het hangt ervan af wat je precies wilt bereiken.
 
Michael -

Michael -

24/04/2014 14:30:47
Quote Anchor link
Wat zou jij anders doen aan dat datamodel dan?

Dat klinkt wel mooi :) Gebruik je die methode zelf ook? Alleen je kunt dan niet eenvoudig een 'rollback' doen lijkt me. Dus als een gebruiker het formulier niet kan afronden door een niet-menselijke fout, blijft er onvolledige data in de database. Of dit een probleem is een tweede.
 
Ward van der Put
Moderator

Ward van der Put

24/04/2014 14:57:54
Quote Anchor link
Gewoon normaliseren zou voldoende moeten zijn. Volgens mij kun jij dat wel, anders helpen we je wel even.

Ja, ik gebruik inderdaad databasetabellen met incomplete gegevens. Een goed voorbeeld zijn online bestellingen: die gaan vaker fout dan goed, maar je hebt de incomplete orders van "shopping cart abandonment" nodig om te zien waar en waarom kopers afhaken.

Wel moet je dus twee dingen elders doen: bij een SELECT moet je er rekening mee houden dat data kunnen ontbreken (in de view en dergelijke) en om de zoveel weken of maanden moet je de database eens opschonen.
 
Michael -

Michael -

24/04/2014 15:12:01
Quote Anchor link
>> Gewoon normaliseren zou voldoende moeten zijn
Ik dacht dat ik dat al redelijk had gedaan eigenlijk...

Misschien toch beter om het idee van rollback voor dit maar te laten vallen. Zolang de lege data geen probleem vormt zou het ook niet veel uit moeten maken (inderdaad in de view en zo controleren of de data er werkelijk is, maar dat doe ik eigenlijk uit automatisme al wel). Als je incomplete data voorbij ziet komen weet je wel gelijk dat er wat fout gaat en eventueel waar.

Wat schoon je precies op dan? Je wilt toch wel een historie van je aankopen? Controleer je dan of alles na jouw idee compleet is, zo niet, dan verwijderen? En dan ben je die mislukte-aankopen-historie wel kwijt?
 
Ward van der Put
Moderator

Ward van der Put

24/04/2014 15:23:57
Quote Anchor link
Ik analyseer de incomplete orderdata en gooi ze daarna weg. Soms duikt daar bijvoorbeeld opvallend vaak een bepaald product in op: dan weet je dat er iets schort aan de prijs of de omschrijving en los je het probleem op, maar de data heb je niet voor eeuwig nodig.

Met sitestatistieken doe ik dat ook: na circa 18 maanden zijn ze niets meer waard, omdat een site (en eigenlijk half internet) na anderhalf jaar te ingrijpend is veranderd. Jaar-op-jaar-verschillen zijn wel belangrijk, bijvoorbeeld bezoeken rond Koningsdag in april vorig jaar versus april dit jaar, maar daarna wordt het al gauw appels met peren vergelijken.

Eigenlijk zou je er een back-up van moeten maken, "want je weet maar nooit", maar statistisch gezien heb je er in de praktijk meestal niets aan.
 
Michael -

Michael -

24/04/2014 15:31:46
Quote Anchor link
Heb je een scriptje gemaakt die je dan af en toe runt en waar dat soort opvallende dingen dan in naar boven komen? Dat heb je dan mooi gedaan en zeker nuttig.

Daar heb je eigenlijk helemaal gelijk in :) Vaak is de opslag van dat soort statistieken niet groot, dus dan is het meer van 'laat maar staan'.

Hoe zou jij het datamodel normaliseren?
 
Ward van der Put
Moderator

Ward van der Put

24/04/2014 15:46:14
Quote Anchor link
Verwijst profile_id naar één persoon? Dan zou ik het zo laten. Wel heb je dan inderdaad data die ook later nog kunnen worden toegevoegd, dus een transactie is niet per se nodig. Data kunnen zelfs worden uitgebreid: bijvoorbeeld werkervaring en opleiding kunnen na verloop van tijd veranderen.

Voor data-analyse gebruik ik Excel en soms gewoon MySQL. Bijvoorbeeld man/vrouw-verschillen vinden is een kwestie van een simpele GROUP BY.
 
Michael -

Michael -

24/04/2014 16:01:58
Quote Anchor link
Ik heb even het installatie bestand in een pastebin gezet dan kun je zien hoe ik het heb toegevoegd.
profile_id is het uniek auto_increment id van de tabel 'profile'. Er kunnen nu dus in principe meerdere zelfde profielen worden toegevoegd met een eigen id.
 
Ward van der Put
Moderator

Ward van der Put

24/04/2014 16:08:36
Quote Anchor link
Als ik het goed zie, kun je doen met de andere tabellen wat je wilt, zolang je maar de juiste profile_id te pakken hebt. Dat lijkt me wel goed, want je hebt één duidelijke afhankelijkheid, maar die is meteen goed te hanteren.
 
Michael -

Michael -

24/04/2014 16:16:02
Quote Anchor link
Top :) Dan is alleen nog het 'probleem' hoe ik goed de profile_id/last insert id te pakken krijg.

In jouw ene voorbeeld kon het dus niet (alles op één moment executen) en mijn manier (in de eerste post) is niet helemaal goed?

Is jouw tweede voorbeeld wel goed dan? De eerste executen om het id te krijgen, om vervolgens de rest voor te bereiden en als laatste 2 tm .. de executen. Of is dat nou niet meer van toepassing als we de rollback laten vervallen.
 
Ward van der Put
Moderator

Ward van der Put

24/04/2014 16:40:00
Quote Anchor link
Je kunt hier een beslissingsregel inbouwen: wat heb je minimaal nodig om iemand te kunnen toevoegen?

Die beslissingsregel bepaalt namelijk hoe je initiële transactie eruit ziet. Díé eerste "minimalistische" INSERTs moeten in hun geheel slagen of falen. Dit levert je de "minimale dataset" op met gegevens die je nodig hebt om de boel niet als een kaartenhuis te laten instorten.

Daarna kun je veel flexibeler op bepaalde onderdelen data toevoegen, zolang je maar de juiste ID bij de hand hebt. Dat kan eventueel ook dagen, weken, maanden later nog — wat jij nodig hebt.

Vergelijk het met het opbouwen van een profiel bij een sociaal netwerk, bijvoorbeeld LinkedIn of Google+. Je moet minimaal x, y en z opgeven voor een account. Maar daarna werken de meeste onderdelen ook goed met een profiel dat maar 60% of 85% compleet is. Je kunt het gebruikers dus ook uitleggen.

Waar je voor een specifieke applicatie nog een specifiek gegeven nodig hebt, stel je een vraag: "Voor dit ene moet je wel zus-en-zo nog instellen." En dat kan dan eventueel nog een INSERT ... ON DUPLICATE KEY UPDATE ... zijn als de bijbehorende tabel in eerste instantie leeg kan zijn.
 
Michael -

Michael -

25/04/2014 08:31:16
Quote Anchor link
Nou ik wil in ieder geval dat minimaal de eerste insert goed is, 'profile', en de tweede, application.
Dit zijn o.a. de persoonsgegevens. Ze hoeven allebei niet 100% gevuld te zijn, maar wel het grote deel en die moeten slagen anders heeft de rest ook geen zin. De rest van de tabellen kan erg uiteen lopen dus dat is niet direct verplicht.

Je kunt het niet vergelijken met een profiel, maar ik snap je punt. In dit geval gaat het om een formulier zonder login o.i.d. Ik zit dus nu ook te denken of ik nog een random key moet toevoegen aan 'profile' waar ik op terug kan vallen om bijvoorbeeld een linkje te sturen waarin men het formulier kan aanpassen (Dat kan dan weer mooi met ON DUPLICATE UPDATE).
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.