PDO transaction prepared statements

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

Medior/senior Front-end developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

Bekijk vacature »

Java Developer

Dit ga je doen Ontwerpen en bouwen van nieuwe functionaliteiten binnen de complexe omgeving; Proactief de processen kwalitatief en efficient inrichten; Opzetten van Unit Tests; Code Reviews; Regie nemen voor innovatieve projecten; Landschap beheren en de bijbehorende ketens hierbij in het oog houden. Hier ga je werken De organisatie is actief binnen de financiele branche en heeft een IT afdeling van circa 450 man. De organisatie voorziet de maatschappij binnen de financiele dienstverlening en is gedurende de jaren een onmisbare schakel geworden. Het is een high profile organisatie waar ze veel te maken hebben met veranderingen voortkomend uit maatschappelijke ontwikkelingen,

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 »

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 »

Outsystems Developer Junior

Dit ga je doen Bouwen aan nieuwe en innovatieve applicaties; Maken van koppelingen tussen Outsystems en het bestaande applicatielandschap; Troubleshooting op bestaande software. Hier ga je werken De organisatie is internationale speler binnen de bouwbranche en richt zich op de infrastructuur, zowel boven als onder de grond. Ze zijn ruim 1100 man groot en maken op IT vlak een mooie groei door. Als junior Outsystems Developer kom je te werken op een IT-afdeling van zo'n 25 man groot. Een aantal jaar geleden hebben ze de keuze gemaakt om zich meer te gaan richten op ontwikkeling en door de groei van

Bekijk vacature »

Traineeship IT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

Medior PHP developer

Functie Samen met je development team werk je Agile Scrum en met jullie gezamenlijke kennis en ervaring bepalen jullie samen de beste keuze voor techniek en architectuur. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en denkniveau • Je hebt goede kennis en ervaring met PHP • Je bent niet bang voor complexe projecten • Je werkt graag zelfstandig aan applicaties • Je bent altijd nieuwsgierig naar nieuwe

Bekijk vacature »

Junior/Medior Front-end developer

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale oplossingen van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen. Op dat moment komt je wil om te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas! Ook Junior Front-End Developer worden bij Coolblue?

Bekijk vacature »

Front-end (Angular) developer

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een Front-end (Angular) developer. Het it-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn dus op zoek naar professionals die autonoom en gedisciplineerd aan de slag gaan, en bij aanvang als enige developer met hun Front-end applicaties aan de slag gaat. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

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

08/05/2024 01:26:27
 
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.