Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155

    [PhpMyAdmin 2.10.1] incorrect datetime value

    Salve a tutti.
    Ho da poco installato PhpMyAdmin versione 2.10.1 dove prima avevo la versione 2.5.7 pl1 perfettamente funzionante.

    Sul PC (Windows XP Sp2) sono installati:
    Apache 2.2.4 (prima avevo 2.0.59)
    MySql 5.0.37 (4.0.21)
    PHP 5.2.1 (4.4.6)

    Con la nuova versione, dalla gestione PhpMyAdmin, non riesco piu' a modificare a NULL i campi che hanno il valore di default = NULL in quanto mi ritorna errore

    La tabella e', ad esempio, la seguente:
    Codice PHP:
    CREATE TABLE `AAA` (
      `
    HU_Chiaveint(11NOT NULL auto_increment,
      `
    HU_Matricolaint(11NOT NULL default '0',
      `
    HU_Valorechar(1) default NULL,
      `
    HU_Data_Inidate default NULL,
      `
    HU_Data_Findate default NULL,
      `
    HU_Data_Insdatetime default NULL,
      
    PRIMARY KEY  (`HU_Chiave`)
    ENGINE=InnoDB DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=
    Se visualizzo (mostra) una riga in PhpMyAdmin e poi imposto il campo HU_Data_Ins = NULL (contrassegnando il campo sotto la colonna NULL) e clicco su ESEGUI, mi ritorna il seguente errore:
    Codice PHP:
    Errore
    query SQL
    :  

    UPDATE `Elsag_Domino`.`AAASET `HU_Data_Ins` = '' WHERE `AAA`.`HU_Chiave` =1 LIMIT 1 

    Messaggio di MySQL
    :  

    #1292 - Incorrect datetime value: '' for column 'HU_Data_Ins' at row 1 
    Sembra quasi che PhpMyAdmin, invece di impostare il valore = NULL, lo imposti = '' (che e' leggermente diverso).
    PhpMyAdmin invece si comporta correttamente se eseguo direttamente il seguente comando in SQL:
    Codice PHP:
    UPDATE `Elsag_Domino`.`AAASET `HU_Data_Ins` = NULL WHERE `AAA`.`HU_Chiave` =1 LIMIT 1 
    Lo stesso errore accade ad esempio se modifico il campo HU_Valore che e' definito come CHAR.
    Come faccio a far eseguire a PhpMyAdmin il corretto aggiornamento?
    Grazie
    Wdb

  2. #2
    non centra phpmyadmin, ma la versione di mysql...

    cerca sql-mode nella seguente pagina

    http://database.html.it/guide/lezion...e-di-mysql-ii/

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Grazie Piero.mac per la tua risposta.

    Ho visto il mio file MY.INI e al parametro da te indicato contiene:
    Codice PHP:
    # Set the SQL mode to strict
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
    ho provato ad eliminare "STRICT_TRANS_TABLES," dal parametro, riavviare sia Mysql che Apache per vedere se cambia qualcosa ma nulla.

    Oltretutto PhpMyAdmin si comporta in modo strano: se vado in modifica e contrassegno il campo della colonna NULL e poi faccio la correzione di un altro campo, il contrassegno della colonna NULL sparisce; lo stesso avviene se in successione contrassegno piu' NULL in tanti campi: mi rimane sempre e solo l'ultimo contrassegnato.

    E' per questo che pensavo dipendesse da PhpMyAdmin.

    Aprofitto ancora di te per sapere se ho qualche speranza oppure nessuna...

  4. #4
    Oltretutto PhpMyAdmin si comporta in modo strano: se vado in modifica e contrassegno il campo della colonna NULL e poi faccio la correzione di un altro campo, il contrassegno della colonna NULL sparisce; lo stesso avviene se in successione contrassegno piu' NULL in tanti campi: mi rimane sempre e solo l'ultimo contrassegnato.
    se selezioni TUTTI i campi potrebbe anche esserci qualche problema. ..... fanne una per volta.. non e' mica una query da fare tutti i momenti. Ho comunque fatto una prova su una tabella di test (phpmyadmin 2.10.1) ed a me funziona.

    Nella versione 5 hanno scelto di essere meno permissivi sulle query, ma non per uno sfizio, ma per essere coerenti con quanto previsto dallo standard SQL.

    Se metti un default il campo non puo' essere NULL, perche' NULL e' il default. Se metti campo = '' (empty) in un campo NULL il campo sara' vuoto e con il valore di default applicato in caso di errore e non piu' NULL.... insomma direi che ci vuole congruenza.... perche' una data dovrebbe essere NULL ???

    Oltretutto sai che menata dover poi eventualmente distinguere nella SELECT un campo NULL da un "campo vuoto" (ma non per la data) o da un campo con il default 0000-00-00 .... ???


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Originariamente inviato da piero.mac
    se selezioni TUTTI i campi potrebbe anche esserci qualche problema. ..... fanne una per volta.. non e' mica una query da fare tutti i momenti. Ho comunque fatto una prova su una tabella di test (phpmyadmin 2.10.1) ed a me funziona.
    Quindi ho qualcosa io che non va: a me funziona esclusivamente UNO PER VOLTA, nel senso che se ne flaggo uno, automaticamente mi sflegga l'altro e cosi' via.
    Il bello e' che ho installato lo stesso ambiente su tre PC e tutti e tre si comportano alla stessa identica maniera.

    Aggiungo che mi setta = '' (empty) anche un campo CHAR laddove dichiaro di settarlo a NULL!!!
    Se invece scrivo correttamente l'istruzione in SQL (set campo = NULL) la esegue senza alcun problema.
    Questo mi fa sempre piu' impazzire e credo che sia proprio qualche definizione nel mio PhpMyAdmin ad essere sbagliata.

    Comunque ti ringrazio lo stesso, mi sei stato di aiuto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.