Was ist dbDelta() und wofür brauch ich das?

dbDelta() ist so eine WordPress-Funktion, die einem immer ein bisserl Kopfzerbrechen bereitet aber extremst hilfreich ist.

Worum geht’s bei dbDelta()?

Die Developer-Seite sagt:

Modifies the database based on specified SQL statements.

Also:
Ändert die Datenbank aufgrund von angegebenen SQL-Anweisungen.
Die Funktion ist sehr hilfreich wenn’s darum geht, eine neue, eigene Tabelle anzulegen. Wenn mir die WP eigene Tabellenstruktur nicht ausreicht und ich mit WP-Bordmitteln (Funktionen) also eine Tabelle erzeugen will.

Doch nicht nur erzeugen ist möglich, auch das Abändern.

Genau da wird’s praktisch! Ich kann meine eigenen Tabellen ohne großen Aufwand, ohne große Überlegungen ändern.
Also Spalten einfügen, Datentypen anpassen o.ä.
Was dbDelta() in dem Zusammenhang nicht kann, ist löschen.

Die Probleme?

Man muss sehr genau sein, was die Anweisungen für dbDelta() betrifft.
Genau heißt in dem Fall, dass es sogar auf ein Leerzeichen zu viel ankommt oder auf die komplette Großschreibung einzelner Wörter.
Die genaue Liste der einzelnen Problemfelder von dbDelta() ist bei folgenden Links ersichtlich:

https://codex.wordpress.org/Creating_Tables_with_Plugins#Creating_or_Updating_the_Table
https://codex.wordpress.org/Creating_Tables_with_Plugins#Creating_or_Updating_the_Table

 

http://wordpress.stackexchange.com/questions/78667/dbdelta-alter-table-syntax/78670#78670
http://wordpress.stackexchange.com/questions/78667/dbdelta-alter-table-syntax/78670#78670

Hilfe in Sicht?

Ja! Es tut sich natürlich immer irgendwo etwas im WordPres-Universum.

Dominik Schilling, ein Core-Entwickler hat Verbesserungen angekündigt, die zb. die oben angesprochenen Probleme beheben.

 

https://twitter.com/ocean90/status/753244345629827072
https://twitter.com/ocean90/status/753244345629827072

dbDelta() updates in 4.6


https://make.wordpress.org/core/2016/07/13/dbdelta-updates-in-4-6/

 

Wer sich für die noch offenen Baustellen interessiert wird hier fündig:

https://core.trac.wordpress.org/query?status=!closed&summary=~dbDelta
https://core.trac.wordpress.org/query?status=!closed&summary=~dbDelta

 

https://developer.wordpress.org/reference/functions/dbdelta/
https://developer.wordpress.org/reference/functions/dbdelta/

https://codex.wordpress.org/Creating_Tables_with_Plugins
https://codex.wordpress.org/Creating_Tables_with_Plugins

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.