[RISOLTO] valore datetime '0000-00-00 00:00:00' non più cons
[RISOLTO] valore datetime '0000-00-00 00:00:00' non più cons postato il 26/05/2020 11:07:08 nel forum programmazione, open source e hosting e modificato da kaytch il 26/05/2020 13:15:36
Ciao a tutti. Sto avendo un problema fastidioso e non riesco a venirne a capo. Premetto che non sono un asso in sql o php, però cerco di leggere guide e documentazioni per imparare meglio a usare questi linguaggi.
Adesso il problema è il seguente. Avendo migrato su un altro hosting e quindi su una versione forse più recente di phpmyadmin ricevo un errore all'iscrizione.php dall'utente di tipo INSERT.
l'errore è simile a quello riscontrato da altri utenti in questo forum ma non sembra essere lo stesso.
Cioè si ha questo errore all'ultimo step di iscrizione.php impedendo all'utente di iscriversi:
GDRCD MySQLi Error [File: iscrizione.php; Line: 383]
Error Code: 1292
Error String: Incorrect datetime value: '0000-00-00 00:00:00' for column 'ultimo_refresh' at row 1
Error Detail: INSERT INTO personaggio (nome, cognome, pass, data_iscrizione, email, sesso, id_razza, car0, car1, car2, car3, car4, car5, salute, salute_max, soldi, esperienza ) VALUES ('nome', 'cognome', 'pass', NOW(), '[email protected]', 'm', 1003, 10, 10, 10, 5, 2, 3, 100, 100, 50, 0 )
Per prima cosa ho controllato i valori di default e sono impostati bene, quindi non si tratta di un valore di default ma è come se il db non accettasse questo tipo di datetime: 0000-00-00 00:00:00. A quanto pare dalla versione 5.7 di mysql diventa 0000-00-00. (?)
credo sia stata deprecata qualcosa oppure un settaggio di default per le date dummy è cambiato. Ho letto che si preferisce il NULL al 0000-00-00 (??) Non so.
Ho provato anche a cercare soluzioni su questo "NO_ZERO_IN_DATE" che sembrerebbe essere di default su nuova versione mysql. Senza successo. Diventa un po' complicato per me, e non capisco se sono sulla giusta strada.
Inoltre se provo a modificare una colonna di tabella personaggio, per esempio "ultimo refresh" mi porta errori di altre colonne con datetime. Probabilmente perché esse fanno parte di un gruppo? in questo caso se io modifico i valori di default delle colonne in gruppo a 0000-00-00 risolverei il problema? In questo caso per attuare questa modifica di gruppo per ora_entrata ora_uscita e ultimo_refresh quale sarebbe la query da eseguire? Perché modificandole singolarmente non lo permette.
Grazie mille per la pazienza, spero che qualcuno posso aiutarmi.
Pagine → 1
26/05/2020 12:11:26
Controlla che all'interno del database la colonna relativa alla data sia datetime e non solo date, in quanto nel primo caso ti è concesso il formato da te richiesto, nel secondo invece solo la data (anche se in realtà dovrebbe passarlo comunque, ma provare non costa nulla).
Non conoscendo gdr-cd così a fondo in quelle metodiche non ricordo.
26/05/2020 12:16:07 e modificato da kaytch il 26/05/2020 12:16:59
Ciao Auronx, grazie per la risposta.
Sì, sembrano essere corrette.
auronx ha scritto: Controlla che all'interno del database la colonna relativa alla data sia datetime e non solo date, in quanto nel primo caso ti è concesso il formato da te richiesto, nel secondo invece solo la data (anche se in realtà dovrebbe passarlo comunque, ma provare non costa nulla).
Non conoscendo gdr-cd così a fondo in quelle metodiche non ricordo.
26/05/2020 12:24:56 e modificato da gdr-online.com il 26/05/2020 12:26:50
Ti confermo che dalla versione 5.7 di MySql non ammette date dove il mese o il giorno sono zero, ma non l'anno. Ad esempio, anche se l'opzione è impostata, '0000-00-00' è ammesso, mentre '1970-00-10' o '1929-01-00' non lo sono.
Potresti provare a fare dei test impostando una una data fittizia tipo "1900-01-01 00:00:00". Così sai che è una data fittizia e vedi se funziona in alternativa puoi provare con un NULL e vedere come reagisce lo script generale
26/05/2020 12:31:23 e modificato da kaytch il 26/05/2020 12:33:07
Grazie per la risposta.
Se provo a salvare ultimo_refresh con un altro valore mi restituisce questo:
Query error #1067 INVALID DEFAULT VALUE FOR ora_entrata
gdr-online.com ha scritto: Ti confermo che dalla versione 5.7 di MySql non ammette date dove il mese o il giorno sono zero, ma non l'anno. Ad esempio, anche se l'opzione è impostata, '0000-00-00' è ammesso, mentre '1970-00-10' o '1929-01-00' non lo sono.
Potresti provare a fare dei test impostando una una data fittizia tipo "1900-01-01 00:00:00". Così sai che è una data fittizia e vedi se funziona in alternativa puoi provare con un NULL e vedere come reagisce lo script generale
26/05/2020 12:36:15
Prova a levare il valore e prova a checkare il "NULL"
26/05/2020 12:46:17
Mi restituisce lo stesso errore. E' strano, è come se una dipende dall'altra.
gdr-online.com ha scritto: Prova a levare il valore e prova a checkare il "NULL"
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
The Coven ↗
Foundation Galactic Frontier ↗
Fallen Gods ↗
Imperion ↗
War Thunder ↗
New Orleans ↗
State of Survival ↗