probleem met datum in mysql via php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nico Van de Velde

Nico Van de Velde

17/07/2013 12:39:07
Quote Anchor link
Hallo,

Kan er mij iemand vertellen hoe ik de actuele datum/tijd kan invoegen in een mysql tabel ?
Ik heb in de volgende code al het een en ander geprobeerd, maar het wil maar niet lukken.


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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
</head>
<body>
<?php
header('Content-type: text/plain');
echo date("Y.m.d-H:i:s") . " voordeur = " . $_GET['vdo'];
echo date("Y.m.d-H:i:s") . " achterdeur = " . $_GET['ado'];

$link = mysql_connect("localhost", "xxx", "xxx") or die("Geen verbinding mogelijk: " . mysql_error());
mysql_select_db("xxx") or die("Database selectie is mislukt");
$query = "INSERT INTO table1(voordeur, achterdeur) VALUES ('"  . $_GET['vdo'] . "', '" . $_GET['ado'] . "')";$result = mysql_query($query) or die("Verzoek is mislukt: " . mysql_error());

mysql_close($link);
?>


</body>
</html>

Op de php pagina krijg ik de datum te zien met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
echo date("Y.m.d-H:i:s") . " voordeur = " . $_GET['vdo'];
echo date("Y.m.d-H:i:s") . " achterdeur = " . $_GET['ado'];

zoals de code er nu staat worden de waarden van de deuren toegevoegd in de tabel, maar komt er bij date natuurlijk NULL te staan.
wanneer ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
INSERT INTO table1(date,voordeur, achterdeur) VALUES ('"NOW()."', '"  . $_GET['vdo'] . "', '" . $_GET['ado'] . "')

neem, gebeurt er helemaal niets meer.
Dit was me nochtans door iemand aangeraden.
Kan er aub iemand helpen,heb controle nodig en ik vertrek vannacht.

Veld date is van het type datetime.
Gewijzigd op 17/07/2013 12:44:08 door Nico Van de Velde
 
PHP hulp

PHP hulp

17/11/2024 16:35:57
 
Reshad F

Reshad F

17/07/2013 12:52:44
Quote Anchor link
waarom laat je dat niet door mysql zelf doen? je kan instellen dat hij de huidige tijd en datum opslaat in desbetreffende veld
 
Tobias Tobias

Tobias Tobias

17/07/2013 12:57:33
Quote Anchor link
MySQL heeft een aantal woorden die niet gebruikt kunnen worden als tabel- of kolomnaam. Ik vermoed dat 'date' er één van is.
Probeer het eens met een andere kolom-naam, of (en dat is niet aan te raden, omdat het niet netjes en betrouwbaar is) :
INSERT INTO table1(`date`,voordeur, achterdeur) VALUES ('"NOW()."', '" . $_GET['vdo'] . "', '" . $_GET['ado'] . "')

Zie hier voor meer info over zogeheten key-words:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

Ps. table1 is geen handige/duidelijke naam voor een tabel. Als je meer tabellen gaat gebruiken, raak je het overzicht kwijt. Gebruik altijd duidelijke tabel- en kolomnamen.
Gewijzigd op 17/07/2013 12:59:25 door Tobias Tobias
 
Nico Van de Velde

Nico Van de Velde

17/07/2013 13:00:00
Quote Anchor link
Kan je mij zeggen hoe dit moet, of begeef ik me dan op glad ijs ivm de regels op dit forum?
Sorry, eerst lezen......
Gewijzigd op 17/07/2013 13:04:14 door Nico Van de Velde
 
Tobias Tobias

Tobias Tobias

17/07/2013 13:29:47
Quote Anchor link
Wat me nu pas opvalt is dat je om de NOW() ook " en ' hebt staan. Deze horen bij NOW() er niet omheen.
Ik heb even wat testjes met date gedaan en daar zit het probleem niet in.

Het wordt dus:
INSERT INTO table1(date,voordeur, achterdeur) VALUES (NOW()., '" . $_GET['vdo'] . "', '" . $_GET['ado'] . "')
Gewijzigd op 17/07/2013 13:33:31 door Tobias Tobias
 
- SanThe -

- SanThe -

17/07/2013 15:30:03
Quote Anchor link
Lek script.
Beveilig je input in de query.
Zie de vele topics over sql-injection.
 
Erwin H

Erwin H

17/07/2013 15:54:50
Quote Anchor link
Tobias Tobias op 17/07/2013 12:57:33:
MySQL heeft een aantal woorden die niet gebruikt kunnen worden als tabel- of kolomnaam. Ik vermoed dat 'date' er één van is.

Een probleem wat maar al te vaak naar voren komt, dus het kan nooit kwaad er extra naar te kijken. DATE is echter geen reserved word, hoewel dat vaak wel gedacht wordt (ook door mij).
Hier de hele lijst: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
 
Nico Van de Velde

Nico Van de Velde

17/07/2013 16:17:20
Quote Anchor link
Tobias Tobias op 17/07/2013 13:29:47:
Wat me nu pas opvalt is dat je om de NOW() ook " en ' hebt staan. Deze horen bij NOW() er niet omheen.
Ik heb even wat testjes met date gedaan en daar zit het probleem niet in.

Het wordt dus:
INSERT INTO table1(date,voordeur, achterdeur) VALUES (NOW()., '" . $_GET['vdo'] . "', '" . $_GET['ado'] . "')

Bedankt Tobias Tobias.
Zonder het punt achter NOW() werkt het.
@ SanThe: zal ik eens rustig naar kijken wanneer ik terug ben binnen een paar dagen.
Ik ben nu al blij dat de controle werkt.Hopelijk blijven de stoute meneren weg.
 



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.