---
title: "Per funktion in extension ein ALTER TABLE durchführen"
url: "https://www.typo3.net/d/77313-per-funktion-in-extension-ein-alter-table-durchfuehren"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Datenbank","Frage"]
created: "2008-05-16"
last_reply: "2008-05-17"
replies: 4
solved: false
page: 1
pages: 1
lang: "de"
---

# Per funktion in extension ein ALTER TABLE durchführen

Extensions › Entwicklung · 4 Antworten · gestartet 2008-05-16

## Eröffnungsbeitrag

**sefer** · 2008-05-16 · [Beitrag #1](https://www.typo3.net/d/77313-per-funktion-in-extension-ein-alter-table-durchfuehren/1)

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)](http://www.amafu.de/tvweb_3_2/typo3conf/ext/extdeveval/apidocs/t3lib_db.html#8e9c0812d45160acbc3438b100a80485)

```html
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
<?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:

```html
$this->createTeams();
```

klapt aber nicht.
thx,
Sefer

## Antworten

### [#2](https://www.typo3.net/d/77313-per-funktion-in-extension-ein-alter-table-durchfuehren/2) · digedag · 2008-05-17

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
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!  ;)

### [#3](https://www.typo3.net/d/77313-per-funktion-in-extension-ein-alter-table-durchfuehren/3) · sefer · 2008-05-17

> **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. :D

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

thx,
Sefer

### [#4](https://www.typo3.net/d/77313-per-funktion-in-extension-ein-alter-table-durchfuehren/4) · digedag · 2008-05-17

> ```php
> $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
$GLOBALS['TYPO3_DB']->sql_query($sql);
```

### [#5](https://www.typo3.net/d/77313-per-funktion-in-extension-ein-alter-table-durchfuehren/5) · sefer · 2008-05-17

Jepp,
man brauch nur das in die Funktion eingeben und das Statement wird ausgeführt

```html
$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

---

Quelle: „Per funktion in extension ein ALTER TABLE durchführen“, typo3.net, https://www.typo3.net/d/77313-per-funktion-in-extension-ein-alter-table-durchfuehren
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
