Seit MySQL 5.7 bzw. MariaDB 10.2 gibt es die Möglichkeit, Felder des Typs JSON zu definieren. Das hat den Vorteil, dass man z.B. komplexere Arrays im JSON Format mit einer Konfiguration ablegen kann ohne Konstrukte mit serialize und unserialize bauen zu müssen in PHP.
Wie es so mit neuen Features ist, funktioniert nicht immer alles reibungslos bzw. muss erst implementiert werden in Software, in welcher die verwendet werden sollen. An dem Punkt „stößt“ dann auch phpMyAdmin auf das Feature und hat ein Problem damit. So kommen alle Versionen vor 4.6.0 nicht mit dem Feldtyp zurecht. Aber auch ab Version 4.6.0 läuft es noch nicht rund, wenn man eine Tabelle aufruft die ein Feld diesen Typs beinhaltet.
Relativ schnell findet man hierzu dann diesen Link, auf dem der Fehler behandelt wird und welche Zeilen Code angepasst werden müssen. Ich habe mal die entsprechenden Zeilen raus gezogen und hieraus ein Diff erstellt:
--- DBIMysqli.class.php.bak 2016-01-29 14:55:32.000000000 +0100 +++ DBIMysqli.class.php 2017-11-30 08:17:23.398635400 +0100 @@ -40,6 +40,10 @@ define('MYSQLI_TYPE_BIT', 16); } +if (! defined('MYSQLI_TYPE_JSON')) { + define('MYSQLI_TYPE_JSON', 245); +} + // for Drizzle if (! defined('MYSQLI_TYPE_VARCHAR')) { define('MYSQLI_TYPE_VARCHAR', 15); @@ -479,6 +483,7 @@ $typeAr[MYSQLI_TYPE_DECIMAL] = 'real'; $typeAr[MYSQLI_TYPE_NEWDECIMAL] = 'real'; $typeAr[MYSQLI_TYPE_BIT] = 'int'; + $typeAr[MYSQLI_TYPE_JSON] = 'json'; $typeAr[MYSQLI_TYPE_TINY] = 'int'; $typeAr[MYSQLI_TYPE_SHORT] = 'int'; $typeAr[MYSQLI_TYPE_LONG] = 'int';
Danach läuft es ohne Probleme/Fehlermeldung!