Automatisch datum opslaan tijdens toevoegen record in DB

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Freelance medior java ontwikkelaar Belastingdienst

Concern: Belastingdienst B/cao Uren per week: 36,00 Standplaats: Apeldoorn Max tarief: € 85,00 Startdatum inzet: 24-10-2022 Einddatum: open De Douane Keten Aangifte zoekt een Medior Java Ontwikkelaar De Douane Keten Aangifte (DA) is verantwoordelijk voor het ontwikkelen, beheren en beschikbaar stellen van IV-voorzieningen voor de Douane applicaties, die het aangifteproces voor Douane ondersteunen. Daaronder vallen de systemen voor o.a. invoeren, doorvoeren en uitvoeren van goederen naar de EU (en Nederland). Keten DA is een van de drie ketens van IV Douane. Ontwikkeling van nieuwe applicaties en verbetering/uitbreiding van bestaande applicaties vindt binnen IV Douane plaats in tweewekelijkse sprints m.b.v. Agile-ontwikkelmethoden.

Bekijk vacature »

Mohamed nvt

Mohamed nvt

16/06/2016 15:01:15
Quote Anchor link
Hallo allemaal,

D.m.v. cursus probeer ik een CRUD applicatie te maken.
Dit is tot zover gelukt.
Nu wil ik graag dat de datum en tijd automatisch wordt opgeslagen in de Mysql DB op het moment dat ik een nieuw record toevoeg.
Hiervoor heb ik een extra kolom toegevoegd aan de DB met de volgende eigenschappen:

Datum timestamp on update CURRENT_TIMESTAMP Nee CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Ik heb begrepen dat dit niet werkt als DB reeds wat gegevens bevat, dus ik heb de DB leeggemaakt.
En, wanneer ik nu een nieuw record toevoeg, dan gebeurt er niets. Van PHP krijg ik de melding dat een record is toegevoegd, maar de DB is leeg.

Wat doe ik fout?
Graag jullie feedback!
Alvast bedankt!
 
PHP hulp

PHP hulp

01/10/2022 12:56:09
 
Thomas van den Heuvel

Thomas van den Heuvel

16/06/2016 15:51:57
Quote Anchor link
Je UPDATE niet bij het INSERTen van een record.

Je zou gewoon NOW() als waarde voor de Datum kolom kunnen gebruiken in de INSERT query?
 
Jan de Laet

Jan de Laet

16/06/2016 17:15:48
Quote Anchor link
Om bij het toevoegen ook de huidige datum/tijd te krijgen moet je de DEFAULT waarde zetten.
Bijv:
Datum TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
 
Mohamed nvt

Mohamed nvt

16/06/2016 22:49:25
Quote Anchor link
Hallo Thomas en Jan,

Bedankt voor jullie reacties.

De insert query heb ik aangepast van:
$sql = "insert into employees values(''," .
"'" . $first . "'," .
"'" . $lastname . "'," .
"'" . $department . "'," .
"'" . $position . "'," .
"'" . $salary . "'," .
"'" . $startdate . "')";

naar :

$sql = "insert into employees values(''," .
"'" . $first . "'," .
"'" . $lastname . "'," .
"'" . $department . "'," .
"'" . $position . "'," .
"'" . $salary . "'," .
"'" . $startdate . "'," .
"'" . NOW() "',)";

Helaas krijg ik de volgende syntax error:

Parse error: syntax error, unexpected '"')"' (T_CONSTANT_ENCAPSED_STRING) in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 18
Ik heb verschillende combinaties geprobeerd door komma weg te laten, helaas mocht dit niet baten.

Enig idee?
 
Thomas van den Heuvel

Thomas van den Heuvel

16/06/2016 22:57:11
Quote Anchor link
De querystring mag best over meerdere regels doorlopen, deze hoef je niet elke keer af te sluiten en opnieuw te openen. NOW() is een MySQL functies dus deze dien je niet tussen quotes te zetten.

De constructie van Jan werkt waarschijnlijk ook, maar je zou ook het volgende kunnen proberen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
$sql = "INSERT INTO employees VALUES (
    '',
    '" . $first . "',
    '" . $lastname . "',
    '" . $department . "',
    '" . $position . "',
    '" . $salary . "',
    '" . $startdate . "',
    NOW()
)";
 
Mohamed nvt

Mohamed nvt

16/06/2016 23:19:04
Quote Anchor link
Thomas van den Heuvel op 16/06/2016 22:57:11:
De querystring mag best over meerdere regels doorlopen, deze hoef je niet elke keer af te sluiten en opnieuw te openen. NOW() is een MySQL functies dus deze dien je niet tussen quotes te zetten.

De constructie van Jan werkt waarschijnlijk ook, maar je zou ook het volgende kunnen proberen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
$sql = "INSERT INTO employees VALUES (
    '',
    '" . $first . "',
    '" . $lastname . "',
    '" . $department . "',
    '" . $position . "',
    '" . $salary . "',
    '" . $startdate . "',
    NOW()
)";

Hoi Thomas,

Het werkt precies zoals ik het wil :)
Heel erg bedankt voor je feedback!
Btw; ik vind je manier van syntax ook eenvoudiger dan wat de cursus adviseert!
 



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.