probleem met datum in mysql via php
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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>
<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)
1
2
2
echo date("Y.m.d-H:i:s") . " voordeur = " . $_GET['vdo'];
echo date("Y.m.d-H:i:s") . " achterdeur = " . $_GET['ado'];
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)
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
waarom laat je dat niet door mysql zelf doen? je kan instellen dat hij de huidige tijd en datum opslaat in desbetreffende veld
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
Sorry, eerst lezen......
Gewijzigd op 17/07/2013 13:04:14 door Nico Van de Velde
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
Beveilig je input in de query.
Zie de vele topics over sql-injection.
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
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'] . "')
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.