Hi,
ich möchte einer Tabelle ein Feld hinzufügen falls dieser noch nicht existiert.
Wie muss der aufruf in der funktion lauten?
In der API habe ich diese Funktion gefunden
sql_query($query)
function sql_query($query)
Executes query
mysql_query() wrapper function
Usage count/core: 1
$query string Query to execute
Returns: pointer Result pointer / DBAL object
und so sieht meine funktion aus
<?php
function createTeams(){
$sql = 'ALTER TABLE `tx_cfcleague_teams` ADD saison_id INT ';
$this->$GLOBALS['TYPO3_DB']->sql_query($sql);
}
?>
und so rufe ich diese in der main() auf:
$this->createTeams();
klapt aber nicht.
thx,
Sefer
Hi Sefer!
Warum willst du denn die Spalte dynamisch im Code hinzufügen? Diese Arbeiten erledigt doch eigentlich der ExtensionManager für dich.
Einfach in der Datei ext_tables.sql die Tabelle erweitern:
CREATE TABLE tx_cfcleague_teams (
saison_id int(11) DEFAULT '0' NOT NULL,
);
Wenn du deine Extension dann im EM aufrufst, wird dir unter Information der Update der Datenbank angeboten.
Ist doch viel einfacher! 😉
digedag schrieb
Wenn du deine Extension dann im EM aufrufst, wird dir unter Information der Update der Datenbank angeboten.
Ist doch viel einfacher! 😉
Ich wußte gar nicht, dass das so funktioniert. Cool dann mache ich das mal so. 😃
Aber ich würde trotzdem gerne,wissen wie ich eine normale Query wie oben, per php ausführe.
thx,
Sefer
$this->$GLOBALS['TYPO3_DB']->sql_query($sql);
Also das wird definitiv nicht funktionieren. $this ist eine reservierte Variable und verweist auf dein aktuelles Objekt. $GLOBALS ist ebenfalls reserviert und stellt dir ein paar globale Variablen zur Verfügung.
Probier es mal damit:
$GLOBALS['TYPO3_DB']->sql_query($sql);
Jepp,
man brauch nur das in die Funktion eingeben und das Statement wird ausgeführt
$sql = "CREATE TABLE testsql ( `id` int(11) NOT NULL);";
$GLOBALS['TYPO3_DB']->sql_query($sql);
Danke digedag, aber ich war harscharf dran 😉
Das mit $this muss ich noch richtig lernen, bin ja noch am anfang.
mfg
Sefer