Skocz do zawartości


 

Problem z zapytaniami

Problem z zapytaniami mysql

  • Proszę się zalogować aby odpowiedzieć
4 odpowiedzi na ten temat

Problem z zapytaniami

#1 Gość_l3szcz_*

Gość_l3szcz_*
  • Goście

Napisany 20 marzec 2016 - 01:14

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...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


  • 0

#2 Łukasz Ostrowski

Łukasz Ostrowski

    Weteran WHT

  • Moderatorzy
  • PipPipPipPipPipPipPipPip
  • 1583 postów
  • Skąd:Bydgoszcz
  • Firma:Sys-Com
  • Imię:Łukasz
  • Nazwisko:Ostrowski

Napisany 20 marzec 2016 - 01:17

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?


  • 0

#3 Gość_l3szcz_*

Gość_l3szcz_*
  • Goście

Napisany 20 marzec 2016 - 01:26

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?
 


Edytowany przez l3szcz, 20 marzec 2016 - 01:28.

  • 0

#4 Łukasz Ostrowski

Łukasz Ostrowski

    Weteran WHT

  • Moderatorzy
  • PipPipPipPipPipPipPipPip
  • 1583 postów
  • Skąd:Bydgoszcz
  • Firma:Sys-Com
  • Imię:Łukasz
  • Nazwisko:Ostrowski

Napisany 20 marzec 2016 - 01:31

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?


  • 0

#5 Gość_l3szcz_*

Gość_l3szcz_*
  • Goście

Napisany 20 marzec 2016 - 01:48

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


Edytowany przez l3szcz, 20 marzec 2016 - 02:01.

  • 0






Także otagowane jednym lub więcej z tych słów kluczowych: mysql

0 użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników