Incorrect datetime value

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frank Veldhuijsen

Frank Veldhuijsen

13/06/2021 17:44:30
Quote Anchor link
Hallo,

Wellicht is er iemand die mij op weg kan helpen...

Sinds kort heb ik het beheer van een website overgenomen omdat de webmaster is weggevallen. Ik heb zo'n beetje alles weer aan de gang en de normale gebruiker van de website ervaart alles als normaal.

Voor verwerking van door gebruikers aangeleverde data is er een admincenter. Ook daarin werkt alles zoals het hoort op een bewerking na. Wij hebben de mogelijkheid om een door een gebruiker aangemaakt bericht te corrigeren, bijvoorbeeld een typefout of foutief aangeleverd gegeven.

De eerste keer dat wij dit bericht verwerken gaat alles goed en wordt het in de database opgeslagen. Het is dan ook keurig terug te vinden. Het probleem ontstaat wanneer achteraf blijkt dat het bewerkt dient te worden en dan gaat er iets fout.

In de database is te zien dat het bericht is opgeslagen in een tabel met een aantal kolommen waarvan er een de datetime bevat. Bij het initiële opslaan (eerste publicatie) gaat het goed, na bewerking en dan "saven" komt de volgende melding:

Incorrect datetime value: '' for column `qb205508_1`.`lmns_esuser`.`dati` at row 1

Er zijn meerdere mogelijkheden binnen de "afdelingen" in het admincenter en de fout komt dan ook voor echter dan voor een andere tabel maar dan ook weer als bijv. ....lmns_truser`.`dati` at row 1

Daarom zit de fout waarschijnlijk in de database en wel in de manier waarop de datetime wordt gezocht en weer teruggeschreven. Het format van de kolom dati is conform datetime ( 0000-00-00 00:00:00 ).

Het heeft altijd gewerkt totdat er in het verleden (nu zo'n jaar geleden) iets met de database is gebeurd en deze hersteld is. Na overzetten naar nieuwe hosting is de database over gezet met de fout bestaat nog steeds en het zou fijn zijn om de functionaliteit van het corrigeren terug te krijgen. Nu werken we er omheen door het bericht te verwijderen en opnieuw te plaatsen en dat is natuurlijk niet de bedoeling.

Zou het iets te maken kunnen hebben met de functies in SQL log :
NO_ZERO_DATE
of
STRICK_TRANS_TABLES

Laatste heb ik geprobeerd aan te passen maar had geen "super" rechten ondanks dat ik als hoofdgebruiker ben aangemeld.

Alvast dank voor het meedenken!
Gewijzigd op 13/06/2021 17:46:57 door Frank Veldhuijsen
 
PHP hulp

PHP hulp

23/10/2021 06:22:34
 
Ivo P

Ivo P

14/06/2021 11:12:48
Quote Anchor link
ik zou beginnen met te achterhalen wat er geprobeerd wordt op te slaan.

foute formaten kunnen zijn:
14/06/2021
14-06-2021
2021-14-06
maar ook
0000-00-00
NULL
en zelfs
"gisteren"

Waar het een een aanpassing in PHP nodig heeft, heeft het andere iets in je database settings te doen.

Voor de hand liggen NULL en 0000-00-00, maar zoek dat eerst even uit.
 
Ward van der Put
Moderator

Ward van der Put

14/06/2021 11:27:44
Quote Anchor link
Het kan ook nog liggen aan een 0 in een deel van de datum. Je kunt een maand opslaan als een datum, en bijvoorbeeld 2021-06-00 gebruiken voor juni 2021, mits de configuratie van de SQL-mode dat toestaat:

https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.