Jak naprawić błąd 1366 - 'NULL' for column 'tid' at row 1

Założony przez Martinex.

Ostatnio miałem problem z instalacją niektórych pluginów na forum, ponieważ wyświetlał się błąd 1366 - Incorrect integer value: 'NULL' for column 'tid' at row 1
Czasami zamiast 'tid' pojawiało się 'gid', ale to też wytłumaczę. Zatem jak to naprawić? Do dzieła.

1 Odnajdź pliki pluginu, który nie działa


Plugin może być każdy, chodzi jedynie o błąd, który się pojawia. Dla przykładu wybierzmy plugin DVZ Shoutbox Bot by Qwizi.
W folderze inc/plugins znajdź plik dvz_shoutbox_bot.php

2 Edycja pliku PHP


Do edycji tego pliku zalecam użyć edytora Notepad++.
Wciskamy na klawiaturze CTRL + F i przechodzimy na zakładkę Zamień. W pierwszej rubryce wpisujemy NULL (szukana fraza), a w drugiej 0 (Zamień na). Następnie wciskając przycisk Zamień, zamieniany wszystkie NULL na 0.

W przypadku wystąpienia 'gid' zamiast 'tid' zasada jest ta sama. Również zamieniamy wszystkie NULL na 0.


3 Podmiana pliku


Po wykonaniu zamiany w wcześniejszym kroku, zapisujemy plik i wrzucamy na nasz serwer FTP do folderu inc/plugins.


I to by było na tyle. Dzięki temu prostemu poradnikowi możemy się uporać z błędem podczas instalacji pluginów na forum.
Problem wynika z tego, że serwer bazodanowy MySQL ma włączony tryb strict, który nie dopuszcza wartość NULL w insertach - i dlatego generuje ten błąd. Najbezpieczniej jest usuwać takie pola, które i tak w tym wypadku są indeksami i generują się automatycznie (tid dla templates, gid dla settinggroups, sid dla settings):

'tid' => null,
'title' => 'costam',

zamienić na:

'title' => 'costam',



Użytkownicy przeglądający ten wątek:

1 gości