| Autor | Zpráva | ||
|---|---|---|---|
| xXx Profil * |
#1 · Zasláno: 20. 7. 2013, 14:26:36
Obracím se na vás s prosbou o pomoc. Začínám se učit PHP a nyní se snažím vložit data z formuláře do databáze. Formulář vypadá takto:
<form method="post" action="vloz.php"> <fieldset> <legend>Vložení aktuality</legend> <label>Text aktuality:</label> <textarea rows="6" name="text"></textarea><br> <label>Zobrazit do:</label> <input type="date" name="datum"><br> <input type="submit" id="odeslat"> </fieldset> </form> a skript takto: $text = $_POST["text"];
$datum = $_POST["datum"];
mysql_connect ("localhost", "root", "");
mysql_select_db ("koupaliste");
mysql_query("
insert into
aktuality
(datum_pridani, zobrazit_do, text)
values
('date(\'Y-m-d H:i:s\')', '$datum', '$text')
");přičemž datum_pridani je typu datetime, zobrazit_do je typu date a text je typu longtext. Bohužel se mi nedaří přijít na to, jak donutit vkládat aktuální čas. Vždy se mi vloží 0000-00-00 00:00:00. Poradí mi někdo, prosím, čím nahradit 'date(\'Y-m-d H:i:s\')' tak, aby se vkládal aktuální datum a čas?
|
||
| jenikkozak Profil |
Použij funkci
NOW():
insert into aktuality (datum_pridani, zobrazit_do, text) values (NOW(), '$datum', '$text') |
||
| llook Profil |
#3 · Zasláno: 20. 7. 2013, 16:03:03
Buďto tu SQL funkci NOW(), nebo prostě ukonči řetězec a zavolej
date(). Tak, jak jsi to napsal, nevoláš funkci date(), ale vkládáš řetězec date('Y-m-d H:i:s'), což si MySQL přebere jako "0000-00-00 00:00:00".
V každém případě hlavně nezapomeň ošetřit $datum a $text, aby ti do něj někdo nevložil nějakou SQL injection: $datum = mysql_real_escape_string($datum);
$text = mysql_real_escape_string($text);
mysql_query("
insert into
aktuality
(datum_pridani, zobrazit_do, text)
values
('" . date(\'Y-m-d H:i:s\') . "', '$datum', '$text')
"); |
||
|
Časová prodleva: 13 let
|
|||
0