[ GDRCD 5.4 ] Risoluzione problema iscrizione (Error Code: 1364)
[ GDRCD 5.4 ] Risoluzione problema iscrizione (Error Code: 1364) postato il 16/10/2016 16:55:43 nel forum programmazione, open source e hosting
[ GDRCD 5.4 / Altervista / Versione MySQL: 5.6 ]
Buonasera a tutti, cerco oggi una conferma/il vostro parere in merito alla risoluzione del seguente problema:
GDRCD MySQLi Error [File: iscrizione.php; Line: 383]
Error Code: 1364
Error String: Field 'ultimo_refresh' doesn't have a default value
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 , ultimo_cambiopass) VALUES ('****', '****', '****', NOW(), '****', 'f', 1000, 5, 10, 5, 10, 5, 5, 100, 100, 50, 100 , NOW())
L'errore in questione si verifica quando si tenta di registrare un nuovo personaggio attraverso il procedimento di iscrizione presente nella home page di GDRCD.
Ho consultato i vari threads presenti sul forum inerenti al problema e la soluzione risolutiva sembrerebbe la seguente:
- Accedere a Phpmyadmin dalla pagina Risorse.
- Aprire il menù a tendina della tabella personaggio (quarta voce partendo dal basso) e cliccare sulla voce 'Campi'.
- Scorrere la lista delle voci presenti (nome, cognome, pass, etc.) fino a raggiungere 'ultimo_refresh' (voce 40).
- All'interno della colonna 'Predefinito' inserire la dicitura: 0000-00-00 00:00:00.000000
Io ho invece inserito la funzione CURRENT_TIMESTAMP in ultimo_refresh, ora_entrata e ora_uscita. Tutto sembra funzionare come dovrebbe.
Consultando un po' di materiale su internet, mi è parso di capire che questa funzione inserisce la data e l'ora occorenti all'inizio della sessione (vi prego, non menatemi, non mi intendo di SQL).
Logicamente (prende la data e l'ora corretti) e concretamente (non mi ritornano errori, la registrazione del personaggio va a buon fine) sembra avere un senso, ma ho timore che la mia soluzione possa farmi incorrere in problemi in futuro.
Insomma, vi chiedo la vostra opinione in merito: può andar bene? Porterà all'autodistruzione? Lo scoprirò vivendo?
Vi ringrazio in anticipo.
THREADS CONSULTATI:
https://www.gdr-online.com/readforum.asp?id=213538
https://www.gdr-online.com/readforum.asp?id=213223
https://www.gdr-online.com/readforum.asp?id=212743
Pagine → 1
16/10/2016 17:16:44 e modificato da geko il 16/10/2016 17:17:23
CURRENT_TIMESTAMP è considerata una funzione TRIGGER perchè aggiorna la data ogni qual volta si verifica un inserimento che richiede quel campo o ogni volta che viene fatto un UPDATE sul record che si va a scegliere.
Per ultimo_refresh potrebbe andare bene, ma per quanto riguarda ora_entrata ora_uscita io gli darei un occhio per essere sicuro che si comporti come tu desideri.
pagina di riferimento:
http://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html ↗
16/10/2016 18:56:17 e modificato da ambermoon il 16/10/2016 18:56:38
Ciao
Volevo segnalare(Sperando di essere utile)..che se ne parla anche un pochino qui:
https://www.gdr-online.com/readforum.asp?id=215388
16/10/2016 20:43:45
geko ha scritto: CURRENT_TIMESTAMP è considerata una funzione TRIGGER perchè aggiorna la data ogni qual volta si verifica un inserimento che richiede quel campo o ogni volta che viene fatto un UPDATE sul record che si va a scegliere.
Per ultimo_refresh potrebbe andare bene, ma per quanto riguarda ora_entrata ora_uscita io gli darei un occhio per essere sicuro che si comporti come tu desideri.
pagina di riferimento:
http://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html ↗
Ciao geko, grazie per la dritta comprensiva di documentazione.
Il concetto di TRIGGER mi è nuovo, indagherò!
Per il momento la soluzione attuale non mi ritorna valori 'strani' o errori, sembra filare liscio.
Rispetto alla soluzione più quotata (inserire la dicitura 0000-00-00 00:00:00.000000) quali sarebbero le differenze? Io purtroppo mi muovo abbastanza 'a braccio' in questo ambito ..
ambermoon ha scritto: Ciao
Volevo segnalare(Sperando di essere utile)..che se ne parla anche un pochino qui:
https://www.gdr-online.com/readforum.asp?id=215388
Ho dato un'occhiata al thread e mi sembra che il principale problema in realtà sia diverso da quello discusso qui. Parti inoltre da una situazione particolare, ovvero importando un vecchio database nella nuova versione di GDRCD. Grazie comunque per il contributo!
16/10/2016 23:00:08 e modificato da geko il 17/10/2016 12:21:41
Ciao geko, grazie per la dritta comprensiva di documentazione.
Il concetto di TRIGGER mi è nuovo, indagherò!
Per il momento la soluzione attuale non mi ritorna valori 'strani' o errori, sembra filare liscio.
Rispetto alla soluzione più quotata (inserire la dicitura 0000-00-00 00:00:00.000000) quali sarebbero le differenze? Io purtroppo mi muovo abbastanza 'a braccio' in questo ambito ..
Il TRIGGER è un evento automatico che si scatena nel momento in cui lo registri secondo un azione sul database, INSERT, UPDATE o DELETE
per fare un esempio, quando loggi su gdrcd viene aggiornato il dato ora_entrata, se registri un TRIGGER che all'upadete di quel dato deve impostare ora_uscita a '0000-00-00 00:00:00' ogni volta che aggiorni ora_entrata automaticamente verrà aggiornato anche ora_uscita
riporto documentazione:
http://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html ↗
alla fine non cambia molto in entrambi i casi, sta a te come vuoi poi fare il controllo sul dato da PHP
26/06/2017 17:16:51
Fenrir, puoi copiaincollarci l'errore che ti da dopo aver applicato le soluzioni di cui sopra?
Grazie!
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!
Seconda Era ↗
Storie di Agarthi ↗
Imperion ↗
The Coven ↗
Tiles Survive ↗
Cafuné ↗