Per funktion in extension ein ALTER TABLE durchführen wurde Beantwortet

Autor Nachricht
Verfasst am: 16.05.2008 [15:43]
sefer

[Themenersteller]
dabei seit: 26.03.2007
Beiträge: 118

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)
Html4strict:Zeilennummerierung:  An / Aus

  1. function sql_query($query)
  2.  
  3. Executes query
  4. mysql_query() wrapper function
  5. Usage count/core: 1
  6. $query  string   Query to execute
  7. Returns:        pointer        Result pointer / DBAL object


und so sieht meine funktion aus
Php:Zeilennummerierung:  An / Aus

  1. <?php
  2. function createTeams(){
  3. $sql = 'ALTER TABLE `tx_cfcleague_teams` ADD saison_id INT ';
  4. $this->$GLOBALS['TYPO3_DB']->sql_query($sql);
  5.  
  6. }       
  7. ?>

und so rufe ich diese in der main() auf:
Html4strict:Zeilennummerierung:  An / Aus

  1. $this->createTeams();


klapt aber nicht.
thx,
Sefer

Mein aktuelles Projekt: >>Ein Fussballportal für den Amatuer Bereich<<

Mein System:-->Debian: 4.0 --> Typo3: 4.1.2 (aus YAML Komplettpaket)--> PHP Version 5.2.0-8+etch7 -->MYSQL: 5.0.32-Debian_7etch1



Verfasst am: 17.05.2008 [12:37]
digedag


dabei seit: 13.04.2007
Beiträge: 228

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:

Php:Zeilennummerierung:  An / Aus

  1. CREATE TABLE tx_cfcleague_teams (
  2.   saison_id int(11) DEFAULT '0' NOT NULL,
  3. );


Wenn du deine Extension dann im EM aufrufst, wird dir unter Information der Update der Datenbank angeboten.
Ist doch viel einfacher! icon_wink.gif


T3sports - Die Ligaverwaltung für TYPO3
Verfasst am: 17.05.2008 [13:18]
sefer

[Themenersteller]
dabei seit: 26.03.2007
Beiträge: 118

digedag schrieb:


Wenn du deine Extension dann im EM aufrufst, wird dir unter Information der Update der Datenbank angeboten.
Ist doch viel einfacher! icon_wink.gif



Ich wußte gar nicht, dass das so funktioniert. Cool dann mache ich das mal so.icon_biggrin.gif

Aber ich würde trotzdem gerne,wissen wie ich eine normale Query wie oben, per php ausführe.

thx,
Sefer

[Dieser Beitrag wurde 1 mal bearbeitet. Zuletzt am 17.05.2008 um 13:21]

Mein aktuelles Projekt: >>Ein Fussballportal für den Amatuer Bereich<<

Mein System:-->Debian: 4.0 --> Typo3: 4.1.2 (aus YAML Komplettpaket)--> PHP Version 5.2.0-8+etch7 -->MYSQL: 5.0.32-Debian_7etch1



Verfasst am: 17.05.2008 [14:39]
digedag


dabei seit: 13.04.2007
Beiträge: 228

Php:Zeilennummerierung:  An / Aus

  1. $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:
Php:Zeilennummerierung:  An / Aus

  1. $GLOBALS['TYPO3_DB']->sql_query($sql);




T3sports - Die Ligaverwaltung für TYPO3
Verfasst am: 17.05.2008 [14:58]
sefer

[Themenersteller]
dabei seit: 26.03.2007
Beiträge: 118

Jepp,
man brauch nur das in die Funktion eingeben und das Statement wird ausgeführt
Html4strict:Zeilennummerierung:  An / Aus

  1. $sql = "CREATE TABLE testsql (  `id` int(11) NOT NULL);";
  2. $GLOBALS['TYPO3_DB']->sql_query($sql);

Danke digedag, aber ich war harscharf dran icon_wink.gif
Das mit $this muss ich noch richtig lernen, bin ja noch am anfang.

mfg
Sefer

Mein aktuelles Projekt: >>Ein Fussballportal für den Amatuer Bereich<<

Mein System:-->Debian: 4.0 --> Typo3: 4.1.2 (aus YAML Komplettpaket)--> PHP Version 5.2.0-8+etch7 -->MYSQL: 5.0.32-Debian_7etch1







 
TYPO3 Version 4.2.0 testen

TYPO3 Ver. 4.2.0 testen

Testen Sie die neue TYPO3 Version 4.2.0 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Berlin:
Montag, 07.07.
in Espelkamp:
Montag, 04.08.

TYPO3 Intensivschulung
in Espelkamp:
Mi., 06.08. - Fr., 08.08.
in Würzburg:
Mo., 18.08. - Mi., 20.08.
in Köln:
Mo., 01.09. - Mi., 03.09.
in Berlin:
Mi., 24.09. - Fr., 26.09.

TYPO3 Extensionschulung
in Berlin:
Mo., 14.07. - Mi., 16.07.
in Espelkamp:
Mo., 11.08. - Mi., 13.08.