Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Mysql salvare campo data vuoto.

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto UtenteMassimoB, Foto Utentefairyvilje

0
voti

[1] Mysql salvare campo data vuoto.

Messaggioda Foto UtenteDaniele78 » 11 dic 2017, 2:51

Salve a tutti,
il mio programma memorizza i campi data vuoti come '0000-00-00'. Dopo gli aggiornamenti software ho iniziato ad avere il seguente errore MySql: Incorrect date value for ... quando tenta di salvare il valore '0000-00-00'.
Come posso risolvere il problema?
Grazie!
Allegati
Schermata del 2017-12-11 01-46-47.png
Schermata del 2017-12-11 01-46-47.png (37.61 KiB) Osservato 2148 volte
Avatar utente
Foto UtenteDaniele78
290 2 8
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

1
voti

[2] Re: Mysql salvare campo data vuoto.

Messaggioda Foto Utenteboiler » 11 dic 2017, 7:31

Devi passargli una data valida. Il giorno deve essere compreso tra 01 e 31, il mese tra 01 e 12 e l'anno tra 1000 e 9999.

Saluti, Boiler
Avatar utente
Foto Utenteboiler
15,7k 4 7 13
G.Master EY
G.Master EY
 
Messaggi: 2695
Iscritto il: 9 nov 2011, 12:27

1
voti

[3] Re: Mysql salvare campo data vuoto.

Messaggioda Foto Utentewruggeri » 11 dic 2017, 10:44

Nella gestione di un database, è considerato obbligatorio l'utilizzo di un valore NULL univocamente definito (SQL ne definisce uno, per la cronaca) e non legato ad alcun dominio per identificare i campi vuoti; è invece fortemente scoraggiato (anzi, per simmetria direi vietato) l'utilizzo di un valore del dominio come identificativo per i campi vuoti.
Rispondo solo a chi si esprime correttamente in italiano e rispetta il regolamento.
Se non conosci un argomento, non parlarne.
Gli unici fatti sono quelli dimostrabili, il resto è opinione.
Non sono omofobo, sessista, leghista o analoghe merdate.
Avatar utente
Foto Utentewruggeri
5.247 2 8 13
Master EY
Master EY
 
Messaggi: 1072
Iscritto il: 25 nov 2016, 18:46

0
voti

[4] Re: Mysql salvare campo data vuoto.

Messaggioda Foto UtenteIlGuru » 11 dic 2017, 11:39

Com'è definita la tabella che contiene quel campo?
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
4.354 1 10 13
Master
Master
 
Messaggi: 1490
Iscritto il: 31 lug 2015, 23:32

0
voti

[5] Re: Mysql salvare campo data vuoto.

Messaggioda Foto UtenteDaniele78 » 11 dic 2017, 12:21

La tabella è questa:

CREATE TABLE `persona` (
`idpers` int(11) NOT NULL,
`lastname` varchar(200) NOT NULL,
`firstname` varchar(200) DEFAULT NULL,
`borndate` date DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

L' utente può scegliere se o non inserire la data di nascita.

Tutti i campi data vuoti, anche in altre tabelle sono stati sempre salvati come '0000-00-00'.
Avatar utente
Foto UtenteDaniele78
290 2 8
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

1
voti

[6] Re: Mysql salvare campo data vuoto.

Messaggioda Foto UtenteIlGuru » 11 dic 2017, 13:06

Forse per inserire il valore nullo va specificato borndate=NULL o borndate='' e non borndate='0000-00-00'
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
4.354 1 10 13
Master
Master
 
Messaggi: 1490
Iscritto il: 31 lug 2015, 23:32

0
voti

[7] Re: Mysql salvare campo data vuoto.

Messaggioda Foto UtenteDaniele78 » 11 dic 2017, 13:28

Solo borndate=NULL funziona e viene salvato NULL.
Il problema è che le query vengono gestite con PDO per cui devo necessariamente passare una stringa.
Avatar utente
Foto UtenteDaniele78
290 2 8
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

0
voti

[8] Re: Mysql salvare campo data vuoto.

Messaggioda Foto UtenteIlGuru » 11 dic 2017, 13:30

borndate glielo devi passare per forza o puoi ometterlo nella query di insert?
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
4.354 1 10 13
Master
Master
 
Messaggi: 1490
Iscritto il: 31 lug 2015, 23:32

0
voti

[9] Re: Mysql salvare campo data vuoto.

Messaggioda Foto UtenteDaniele78 » 11 dic 2017, 13:39

Significherebbe utilizzare utilizzare due differenti query a seconda del caso data inserita oppure no. Comunque avrei lo stesso il problema nella query di update dove dovrà necessariamente essere presente il campo borndate.
Avatar utente
Foto UtenteDaniele78
290 2 8
Expert
Expert
 
Messaggi: 288
Iscritto il: 9 set 2008, 23:07

0
voti

[10] Re: Mysql salvare campo data vuoto.

Messaggioda Foto Utentewruggeri » 11 dic 2017, 14:01

Daniele78 ha scritto:Il problema è che le query vengono gestite con PDO per cui devo necessariamente passare una stringa.


Se PDO (che non conosco, ma essendo un'estensione per PHP - sull'infima qualità del quale quale personaggi ben più qualificati di me si sono abbondantemente espressi - temo il peggio) ti richiede per forza una stringa, PDO viola una delle regole di base che si insegnano fin dal primo contatto con un database a tutti gli studenti di materie informatiche; segue che PDO risulta pertanto inutilizzabile e va, se possibile, abolito.

Daniele78 ha scritto:Significherebbe utilizzare utilizzare due differenti query a seconda del caso data inserita oppure no. Comunque avrei lo stesso il problema nella query di update dove dovrà necessariamente essere presente il campo borndate.

Dovresti scrivere due query (cosa che mi suona un po' strana, comunque)? Allora mi sa che ti conviene iniziare :mrgreen: Se la situazione è esattamente come la descrivi, non c'è altro modo (non immediatamente, almeno) di realizzare una gestione corretta del database.
Rispondo solo a chi si esprime correttamente in italiano e rispetta il regolamento.
Se non conosci un argomento, non parlarne.
Gli unici fatti sono quelli dimostrabili, il resto è opinione.
Non sono omofobo, sessista, leghista o analoghe merdate.
Avatar utente
Foto Utentewruggeri
5.247 2 8 13
Master EY
Master EY
 
Messaggi: 1072
Iscritto il: 25 nov 2016, 18:46

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti