Errore del Database

Aperto da Raffomix, Domenica - 08 Novembre 2020 - 09:06

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Raffomix

il mio forum è aggiornato regolarmente, e quindi a tutt'oggi la versione installata è SMF 2.0.17

da alcuni giorni appare la seguente scritta quando si tenta di editare:

"Field 'edit_reason' doesn't have a default value
File: /home2/ed2k4buz/public_html/forum/Sources/Subs-Post.php
Riga: 1835

Nota: Sembra che il tuo database debba essere aggiornato. I file del forum risultano attualmente alla versione SMF 2.0.17, mentre il database corrisponde alla versione 2.0.4. Il problema potrebbe essere risolto eseguendo l'ultima versione del file upgrade.php."

mah

Darknico

Hai per caso installato una mod per motivare le modifiche dei post o l'hai tolta di recente?
Insomma, hai fatto qualcosa con una mod del genere? :)

Citazione di: Raffomix il Domenica - 08 Novembre 2020 - 09:06
Nota: Sembra che il tuo database debba essere aggiornato. I file del forum risultano attualmente alla versione SMF 2.0.17, mentre il database corrisponde alla versione 2.0.4. Il problema potrebbe essere risolto eseguendo l'ultima versione del file upgrade.php."

mah

Questo messaggio ogni volta è praticamente inutile.
Ogni qual volta c'è un anomalia nel db, per SMF significa (senza pensarci) che la tua versione di smf è vecchia, quindi ti dice questo messaggio.
Se ti chiedi perchè addiruttura parla di SMF 2.0.4, posso scommettere che il tuo forum è nato con quella versione :)
Nel frattempo hai aggiornato ma sempre con le patch che (non ho mai capito il motivo) non aggiorna mai la versione specificata nel database.
Questo non crea nessun tipo di problema ma solo spavento quando appare questo messaggio di errore :D
Non supporto privatamente, non risponderei e ci rimarreste male....

Raffomix

#2
ti allego il file menzionato che facciamo prima...
dunque, si, in periodi abbastanza lontani mi era toccato installare una mod che permetteva di scrivere la ragione della modifica in un determinato post, questo perchè parecchi si sentivano "offesi" dal fatto che qualcuno avesse toccato il loro editato: la mod in questione si chiamava "Reason for Edit".
dopo l'ultimo aggiornamento era sparita anche la voce disinstalla nella lista delle mod e l'avevo lasciata lì.

Il problema sostanziale che oggi nel forum non si può editare niente, perchè appare sempre quel messaggio: "Field 'edit_reason' doesn't have a default value
File: /home2/ed2k4buz/public_html/forum/Sources/Subs-Post.php
Riga: 1835
sono andato a guardare e nella riga incriminata una parentesi tonda e un punto e virgola );

aslupin3

#3
Generalmente quando MySQL è in Strict Mode bisogna specificare in ogni campo del DB un valore di default (Non era necessario con versioni vecchie del motore di MySQL).

Potresti provare ad impostare come valore di defalut del campo "edit_reason" la stringa vuota (che è differente da NULL).

EDIT:
Se la mod è questa (https://custom.simplemachines.org/mods/index.php?mod=349) in effetti nel creare il campo non imposta valore di default.
Confermo quindi che impostare un valore di default dovrebbe risolvere il problema.

Per non lasciare vuoto potresti mettere una frase tipo "Modifica da parte dell'utente per errori", o quello che ti pare meglio.

Raffomix

Citazione di: aslupin3 il Lunedì - 09 Novembre 2020 - 17:09
Generalmente quando MySQL è in Strict Mode bisogna specificare in ogni campo del DB un valore di default (Non era necessario con versioni vecchie del motore di MySQL).

Potresti provare ad impostare come valore di defalut del campo "edit_reason" la stringa vuota (che è differente da NULL).

EDIT:
Se la mod è questa (https://custom.simplemachines.org/mods/index.php?mod=349) in effetti nel creare il campo non imposta valore di default.
Confermo quindi che impostare un valore di default dovrebbe risolvere il problema.

Per non lasciare vuoto potresti mettere una frase tipo "Modifica da parte dell'utente per errori", o quello che ti pare meglio.

dove dovrei mettere la frase? grazie...

aslupin3

#5
Citazione di: Raffomix il Lunedì - 09 Novembre 2020 - 20:04

dove dovrei mettere la frase? grazie...

Dovresti modificare direttamente il DB e le proprietà del campo.

La tabella da modificare è prefix_messages e il campo è edit_reason. Lo modifichi specificando nel valore di default quello che vuoi.

Raffomix

nel mio db non esiste tale tabella

aslupin3

#7
ho usato prefix_ per indicare il prefisso delle tabelle che può variare da installazione in installazione.

Nel tuo caso cerca la tabella smf_messages.

NOTA: Modificando il valore di default non fai altro che dire a MySQL che in caso il valore di quel campo non fosse specificato di usare quello come valore.
Nell'uso, visto che comunque un valore, anche la stringa vuota, viene passato non dovresti mai vederlo.

Raffomix


Discussioni simili (3)