Automatisch datum opslaan tijdens toevoegen record in DB

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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

19/04/2024 14:41:37
 
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.