Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] default value
Forum PHP.pl > Forum > Bazy danych
lubski
Mam taki problemik z błędem default value. Mianowicie :

Tworzymy tabelkę :

CREATE TABLE `test` (
`id` int(11) NOT NULL auto_increment,
`pole_a` varchar(255) NOT NULL,
`pole_b` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2

Przy próbie insertu -> INSERT INTO test (pole_a) VALUES ('aaaaa');
dostaje komunikat -> Field 'pole_b' doesn't have a default value
Wszytko oczywiste pole_b nie ma ustawionej domyślnej wartości.
Takie komunikaty dostaję na moim serwerze lokalnym.

Gdy wchodzę na maszynę zewnętrzną na której są umieszczone skrypty php z tymi insertami. Baza je przyjmuje bez problemu. Wpisując w pole_b pustą wartość.
Między tabelami nie ma różnic w strukturze. Szukałem też w konfiguracji jakiś różnic i nic.

Jest jakaś opcja globalnego ustawiania default value ?
bomblix
pole_b ma NOT NULL czyli nie moze byc wartosc NULL

  1. INSERT INTO test (pole_a) VALUES ('aaaaa');


zamiast tego sproboj 



  1. INSERT INTO test (pole_a, pole_b) VALUES ('aaaaa','');
lubski
No tak by zadziałało. Ale jak zassam set plików nie będę poprawiał każdego.

Thx za odzew, ale między czasie znalazłem rozwiązanie. W pliku ko konfiguracyjnym miałem linie:

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

opis tutaj : http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html

Po prostu mysql jak nie dostał wartości to sypał błędem. A na serwerze online nie.
Zakomentowanie tej linii usunęło ten problem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.