"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

hilfe bei php: NOW() funktion

Easyrider16 26.04.2006 - 13:39 2562 33
Posts

Easyrider16

Bloody Newbie
Avatar
Registered: Aug 2004
Location: Amstetten, NÖ
Posts: 1791
hi

habe prob, will in sql-tabelle aktuelles datum einfügen, bekomms aber nicht hin

ausschnitt des codes:


$sql = "INSERT INTO tblauktionen (subject, description, from, to, available, limit, dt, price, picture) VALUES (";
$sql= $sql.$_REQUEST['fsubject'].",";
$sql= $sql.$_REQUEST['fdescription'].",";
$sql= $sql.$_REQUEST['ffrom'].",";
$sql= $sql.$_REQUEST['fto'].",";
$sql= $sql.$_REQUEST['favailable'].",";
$sql= $sql.$_REQUEST['flimit'];

$sql= $sql.$_REQUEST['fprice'].",";
$sql= $sql.$_REQUEST['fpicture'].")";


in die leere zeile gehört die funktion oder?

tia

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Da fehlt noch mehr, z.B. Anfuehrungszeichen um Strings, oder?

Im Ende sollte es so funktionieren:
INSERT ... VALUES( ... , NOW(), ...

freezer90

Ex SE Student
Avatar
Registered: Aug 2002
Location: Linz
Posts: 768
hallo!

also kommt darauf an, welchen typ die spalte dt hat. willst du das als string/timestamp/what ever speichern?

es gibt eigene date/time funktionen in mysql:
http://dev.mysql.com/doc/refman/5.0...-functions.html

lg
freezer90

TIPP: $sql.= $_REQUEST['...'] ist das selbe wie $sql = $sql.$_REQUEST['...']

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Ja... wo is überhaupt das Problem? ;)

zB so:
Code: PHP
$sql = "INSERT INTO tblauktionen SET
			subject     = '".$_REQUEST['fsubject']."',
			description = '".$_REQUEST['fdescription']."',
			from        = '".$_REQUEST['ffrom']."',
			to          = '".$_REQUEST['fto']."',
			available   = '".$_REQUEST['favailable']."',
			limit       = '".$_REQUEST['flimit']."',
			dt          = NOW(),
			price       = '".$_REQUEST['fprice']."',
			picture     = '".$_REQUEST['fpicture']."';";

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Ist magic_quotes aktiv? Sonst musst du die einzelnen Werte auch noch escapen.

Luzandro

OC Addicted
Avatar
Registered: Mar 2006
Location: 2482
Posts: 708
NOW ist eine mysql und keine php-funktion (schätze das war dein problem, denn aus deinem post geht nicht wirklich hervor, was du tust und welches problem das verursacht..)

wenn du das ganze auch irgendwo online verwenden willst, solltest du den input auch noch überprüfen
http://de.wikipedia.org/wiki/SQL-Injection

Easyrider16

Bloody Newbie
Avatar
Registered: Aug 2004
Location: Amstetten, NÖ
Posts: 1791
habs so gemacht wie spikx gepostet hat, funkt aber ned

fehlermeldung:

INSERT INTO tblauktionen SET subject = 'fdgh', description = 'fdgh', from = '2006-02-02', to = '2006-02-02', available = '20', limit = '10', price = '20', picture = '';Fehler!!: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from = '2006-02-02', to = '2006-02-02', ' at line 4

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Welcher Datentyp ist für from und to in der Tabelle definiert?

Easyrider16

Bloody Newbie
Avatar
Registered: Aug 2004
Location: Amstetten, NÖ
Posts: 1791
Zitat von Spikx
Welcher Datentyp ist für from und to in der Tabelle definiert?

DATE

Luzandro

OC Addicted
Avatar
Registered: Mar 2006
Location: 2482
Posts: 708
kanns sein, dass FROM bei mysql ein reserviertes wort ist und nicht als spaltenname vorkommen darf? wobei dann hättest du den table ja gar nicht anlegen können...

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
ja, isses. SELECT * FROM table :)

//sry, wieder nur die hälfte gelesen gehabt. vl hilfts wem :D

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Zitat von Luzandro
kanns sein, dass FROM bei mysql ein reserviertes wort ist und nicht als spaltenname vorkommen darf? wobei dann hättest du den table ja gar nicht anlegen können...
Doch, das is es. Anlegen geht nämlich, darauf zugreifen nicht mehr :) Hatte dasselbe Problem wie ich mal eine Tabelle erstelle habe die das Attribut 'key' hatte..
Aber i glaub mit
Code: PHP
$sql = "INSERT INTO tblauktionen SET
			subject     = '".$_REQUEST['fsubject']."',
			description = '".$_REQUEST['fdescription']."',
			'from'        = '".$_REQUEST['ffrom']."',
			to          = '".$_REQUEST['fto']."',
			available   = '".$_REQUEST['favailable']."',
			limit       = '".$_REQUEST['flimit']."',
			dt          = NOW(),
			price       = '".$_REQUEST['fprice']."',
			picture     = '".$_REQUEST['fpicture']."';";
könnte es funktionieren? Hab's damals nicht mehr ausprobiert. Oda vielleicht mit accent statt apostroph? Hm.
Bearbeitet von Spikx am 26.04.2006, 15:12

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
ad mysql und datum .. bisher bin ich am besten gefahren die datumsfelder einfach INT zu halten und UNIX Timestamps im PHP einzufügen - die Datumsfunktionen für Unix Timestamps sind ziemlich ok :)

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
Zitat von vossi
ad mysql und datum .. bisher bin ich am besten gefahren die datumsfelder einfach INT zu halten und UNIX Timestamps im PHP einzufügen - die Datumsfunktionen für Unix Timestamps sind ziemlich ok :)
kommt auf den anwendungszweck an.. bei einem geburtsdatum fährt man mit einem unix-timestamp eher schlecht ;)

keywords für tabellen- oder spaltennamen müssen per unter ` geschrieben werden.. also zB: `from`

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4871
@Spikx: Der Syntax bei deinem Insert ist mir nicht bekannt:
Code: PHP
INSERT INTO `table` (spalte1, spalte2, spalte3) VALUES("wert1", "wert2", "wert3")
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz