W ostatnim czasie kilkakrotnie zdarzyło mi się natrafić na problemy z instalacją różnych dodatków do Joomla. W wielu przypadkach były to błędy składniowe dla poleceń SQL, czyli z ang. SQL syntax error.
W tym artykule opisuję co jest powodem niepowodzenia wykonania instalacji oraz zamieszczam rozwiązanie.
Problem opisuję na przykładzie instalacji komponentu PhocaMaps. Przy próbie instalacji wywala następujący komunikat błędu (co ciekawe pliki są poprawione instalowane, problem tyczy się poleceń bazodanowych):
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM CHARACTER SET `utf8`' at line..."
Kluczowy jest tutaj zapis "TYPE=MyISAM", który dla nowszych wersji serwerów SQL (bodajże wersje powyżej 5.5.x, ale za to głowy nie dam) powinien zostać zmieniony na "ENGINE=MyISAM".
Rozwiązanie - edycja składni SQL
Rozwiązaniem jest prosta edycja skladni poleceń SQL'owych. Wystarczy wyedytować plik instalacyjny zawierający stosowny kod lub ręcznie wkleić już poprawny kod SQL do phpMyAdmin'a.
Poprawka paczki instalacyjnej PhocaMaps
W przypadku w/w komponentu należy wykonać ręczną edycję jednego pliku. Ale po kolei:
- Rozpakowuję archiwum zawierające pliki komponentu (np. com_phocamaps_v1.1.1.zip)
- Otwieram do edycji plik /controllers/phocampasintall.php
- Od linijki nr 37 znajduję kod SQL ujęty w PHP, np.: CREATE TABLE IF NOT EXISTS '#__phocamaps_map'
- Zmieniam wszystkie ciągi znaków TYPE=MyISAM na ENGINE=MyISAM (w większości edytorów tekstowych skrót klawiszony CTRL+H otwiera okno "znajdź i zamień", które jest bardzo pomocne w takich sytuacjach).
Pobierz poprawiony komponent PhocaMaps v.1.1.1 PL
Dla leniwych publikuje własnoręcznie poprawioną paczkę instalacyjną, która zawiera polskie tłumaczenie: com_phocamaps_v1.1.1_MJK.zip [438 kB].