Gość l3szcz Zgłoś post Napisano Marzec 20, 2016 Witajcie, taki problemik mam z bazą danych. Wyskakuje mi błąd: Field `nazwa..` doesn't have a default value. Z tego co wyczytałem na stackoverflow problem dotyczy sql_mode, które ustawiłem: sql_mode = '' wyłączając w ten sposób STRICT_TRANS_TABLES (kierowałem się: http://stackoverflow.com/questions/15438840/mysql-error-1364-field-doesnt-have-a-default-values) aby serwer nie sprawdzał poprawności kolumn / wpisów. Niestety na nic to się zdało i potrzebuję pomocy. Wersja MySQL - 5.6 Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Marzec 20, 2016 Zmiana sql_mode to obejście a nie rozwiązanie. Nie prościej Ci na pole "nazwa" nadać to czego brakuje - domyślnej wartości? Co to za badziewna baza? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość l3szcz Zgłoś post Napisano Marzec 20, 2016 (edytowany) To nie jest tylko mój problem a kilku osób. Czy mógłbyś naprowadzić na wprowadzenie takiej wartości? Przykładowo (wyciągnięte z Tentego - skryptu nie idzie zainstalować): if(mysql_query("CREATE TABLE IF NOT EXISTS `tablicacms_users` (`id` int(11) NOT NULL AUTO_INCREMENT,`user` varchar(16) CHARACTER SET utf8 NOT NULL,`pass` varchar(32) CHARACTER SET utf8 NOT NULL,`email` varchar(128) CHARACTER SET utf8 NOT NULL,`name` varchar(32) CHARACTER SET utf8 NOT NULL,`surname` varchar(48) CHARACTER SET utf8 NOT NULL,`date` datetime NOT NULL,`last_seen` datetime NOT NULL,`ip` varchar(15) CHARACTER SET utf8 NOT NULL,`last_ip` varchar(15) CHARACTER SET utf8 NOT NULL,`rank` int(1) NOT NULL DEFAULT '2',`active` varchar(12) CHARACTER SET utf8 NOT NULL DEFAULT '1',`avatar` text CHARACTER SET utf8 NOT NULL,`remind` varchar(5) CHARACTER SET utf8 NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1") && mysql_query("INSERT INTO `tablicacms_users` (`id`, `user`, `pass`, `email`, `name`, `surname`, `date`, `rank`) VALUES (1, '".$_SESSION['install']['admin_name']."', '".md5($_SESSION['install']['admin_pass'])."', '".$_SESSION['install']['admin_email']."', '".$_SESSION['install']['admin_imie']."', '".$_SESSION['install']['admin_nazwisko']."', '".date("Y-m-d H:i:s")."', 0)")) echo 'OK'; else exit('Błąd: '.mysql_error().''); Błąd SQL zwraca: Field 'last_seen' doesn't have a default value chociaż last_seen nie jest w ogóle zdefiniowany przy wpisywaniu danych instalacyjnych. Tak jest prawie na każdym źle rozpisanym skrypcie i biorąc to pod uwagę plus to, że na 5.5 wszystko działało bez takich problemów zastanawiam się czy istnieje możliwość jakiegokolwiek rozwiązania aby działały te ich skrypty i skrypciki? Edytowano Marzec 20, 2016 przez l3szcz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Marzec 20, 2016 Dodaj do inserta last_seen i wypełnij je czymś. Choć takich krzaczków może być więcej. Generalnie to tylko pokazuje jakość kodu. Ewentualnie możesz wywołać zapytaniem SQL dla połączenia określony mod i wyłączyć sobie na czas instalacji tego strict_trans_tables, choć potem i tak problem może wrócić. SET SESSION sql_mode = 'modes'; A jak chcesz uparcie to ustawić na cały serwer MySQL to napisz co to za system, czy jest tam jakiś panel i skąd jest ta instalacja mysqla(kompilacja/repo/etc). Resetowałeś MySQLa po dopisaniu tej linijki? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość l3szcz Zgłoś post Napisano Marzec 20, 2016 (edytowany) Jest to Centos 6.6, panel Directadmin, serwer instalowany razem z panelem. Po sql_mode = '' restartowałem MySQL. Skorzystałem z Twojej rady i dopisałem do skryptu linijkę. Teraz ruszyło Edytowano Marzec 20, 2016 przez l3szcz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach