Zum Inhalt springen

exec_INSERTquery

Erstellt am 15. Juni 2009 · 3 Antworten · letzte Antwort am 23. Juni 2009

Tags: Frage

Devil ·

Hallo allesamt,
ich glaub ich habe grad die dämlichste Frage, aber ich komme bei meiner Extension nicht weiter. Zudem weiß ich nicht mal ob das hier in das Themengebiet des Forums passt, sorry.

Ich will ne einfache insert Anweisung machen. Mit der exec_INSERTquery-Anweisung schreibt mir Typo jedoch in die DB bei den Feldern crdate und tstamp nur 0 hin. Was ist bitte an meinem Array falsch?

$fieldValues = array(
	'pid' => $this->pid,
	'tstamp' => 'UNIX_TIMESTAMP()',
	'crdate' => 'UNIX_TIMESTAMP()',
	'cruser_id' => '1',
	'deleted' => '0',
	'hidden' => '0',
	'smiley' => $smiley,
	'comment' => $comment,
	'name' => $nameID["uid"]
);
$res = $GLOBALS['TYPO3_DB'] -> exec_INSERTquery('tabelle', $fieldValues);

Mit der herkömmlichen Schreibweise funzt alles prima.

$insert = "INSERT INTO tabelle (pid,tstamp,crdate,cruser_id,deleted,hidden,smiley,comment, name) VALUES (".$this->pid.",UNIX_TIMESTAMP(),UNIX_TIMESTAMP(),1,0,0,'".$smiley."','".$comment."','".$nameID["uid"]."')";
$res = mysql(TYPO3_db,$insert);

Danke für Eure Hilfe!

Devil

just2b ·

Hallo,

naja du übergibst da ja einen string, und der passt bekanntlicherweise nicht in ein integer feld.

nimm einfach das:

'tstamp' => time(),

lg georg

Devil ·

Irgendwie hab ich mir sowas gedacht gehabt, nur wusst ich nicht das man es auch mit time lösen kann. Jedenfalls tausend Dank.

Gregor ·

Alternativ hättest du auch die tstamp und crdate-Spalten als "no_quote_fields" in der exec_INSERTquery-Funktion definieren können, denke ich.

Hab es jetzt nicht getestet, aber wenn man z.B. bei einer Spalte den aktuellen Wert +1 setzen möchte, muss man neben "spalte => 'spalte+1'" für den Wert im Array für die Insert-Werte noch "spalte" als "no_quote_field" definieren, da sonst die fullQuoteArray-Funktion zur Absicherung durch Typo3 greift und diese MySQL-internen Funktionen nicht mehr als solche erkannt werden.