Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    Problema Dato ENUM Mysql

    user_timezone enum('-12', '-11', '-10', '-9', '-8', '-7', '-6', '-5', '-4.5', '-4', '-3.5', '-3', '-2', '-1', '0', '+1', '+2', '+3', '+3.5', '+4', '+4.5', '+5', '+5.5', '+6', '+7', '+8', '+9', '+9.5', '+10', '+11', '+12') NOT NULL default '0',

    Quando inserisco una record nel database senza specificare il valore di user_timezone come valore di default -12

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Perché scrivi in PHP se il problema ce l'ahi col database?
    Fa a ttenzione a dove inserisci le tue discussioni.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Ottieni -12 perché è il primo valore (indice 0). Non usare ENUM, usa TINYINT UNSIGNED.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Perché scrivi in PHP se il problema ce l'ahi col database?
    Fa a ttenzione a dove inserisci le tue discussioni.
    Chiedo scusa.

    Quote Originariamente inviata da razzoli Visualizza il messaggio
    Ottieni -12 perché è il primo valore (indice 0). Non usare ENUM, usa TINYINT UNSIGNED.
    Grazie per la delucidazione.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Comunque se utilizzo l'inidice 14 (o 13) o qualsiasi altro numero mi segnala un errore.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Che errore?

    Comunque ti consiglio di usare TINYINT.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    che il parametro non è valido. Accetta solo lo 0 (che da quanto ho letto è riservato appunto per valori non validi)

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Hai ragione, 0 sono i valori non validi e l'indice parte da 1. Però dovresti postare il tuo codice, altrimenti non c'è modo di capire il problema.....

    Quello che vuoi fare funziona, forse non lo fai nel modo giusto.

    MariaDB [test]> CREATE TABLE prova (x enum('-12', '-11', '-10', '-9', '-8', '-7', '-6', '-5', '-4.5', '-4', '-3.5', '-3', '-2', '-1', '0', '+1', '+2', '+3', '+3.5', '+4', '+4.5', '+5', '+5.5', '+6', '+7', '+8', '+9', '+9.5', '+10', '+11', '+12') DEFAULT '0') ENGINE=InnoDB;
    Query OK, 0 rows affected (0.44 sec)

    MariaDB [test]> INSERT INTO prova VALUES (DEFAULT);
    Query OK, 1 row affected (0.07 sec)

    MariaDB [test]> SELECT * FROM prova;
    +------+
    | x |
    +------+
    | 0 |
    +------+
    1 row in set (0.00 sec)

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    CREATE TABLE {prefix}_users(
    user_id mediumint(8) unsigned NOT NULL auto_increment,
    user_nickname varchar(50) NOT NULL default '',
    user_password char(32) NOT NULL default '',
    user_salt char(32) NOT NULL default '',

    [...]

    user_timezone enum('-12', '-11', '-10', '-9', '-8', '-7', '-6', '-5', '-4.5', '-4', '-3.5', '-3', '-2', '-1', '0', '+1', '+2', '+3', '+3.5', '+4', '+4.5', '+5', '+5.5', '+6', '+7', '+8', '+9', '+9.5', '+10', '+11', '+12') NOT NULL default '0',

    [...]
    PRIMARY KEY (user_id)
    )ENGINE=MyISAM;

    INSERT INTO {prefix}_users
    VALUES
    (1, 'Guest', '', '', [...] , 16, [...]),
    (2, '{nickname}', MD5('{password}'), md5('{password_salt}'), [...] , 16, [...])
    ;

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    La prossima volta, per favore, posta un codice che si possa copiare e incollare senza perdere tempo a modificarlo... ok? Grazie

    Come dicevo, funziona perfettamente.

    codice:
    MariaDB [test]> CREATE TABLE _users(
        -> user_id mediumint(8) unsigned NOT NULL auto_increment,
        -> user_nickname varchar(50) NOT NULL default '',
        -> user_password char(32) NOT NULL default '',
        -> user_salt char(32) NOT NULL default '',
        -> user_timezone enum('-12', '-11', '-10', '-9', '-8', '-7', '-6', '-5', '-4.5', '-4', '-3.5', '-3', '-2', '-1', '0', '+1', '+2', '+3', '+3.5', '+4', '+4.5', '+5', '+5.5', '+6', '+7', '+8', '+9', '+9.5', '+10', '+11', '+12') NOT NULL default '0',
        -> PRIMARY KEY (user_id)
        -> )ENGINE=MyISAM;
    Query OK, 0 rows affected (0.11 sec)
    
    MariaDB [test]> INSERT INTO _users
        -> VALUES
        -> (2, '', MD5('password'), md5('password_salt'), DEFAULT)
        -> ;
    Query OK, 1 row affected (0.00 sec)
    
    MariaDB [test]> SELECT * FROM _users;
    +---------+---------------+----------------------------------+----------------------------------+---------------+
    | user_id | user_nickname | user_password                    | user_salt                        | user_timezone |
    +---------+---------------+----------------------------------+----------------------------------+---------------+
    |       2 |               | 5f4dcc3b5aa765d61d8327deb882cf99 | 685af19f02e9efbf8e8c7253a8ce7d72 | 0             |
    +---------+---------------+----------------------------------+----------------------------------+---------------+
    1 row in set (0.00 sec)

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.