Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Fayble
    Registrato dal
    May 2002
    Messaggi
    141

    Impostare NULL se il campo è vuoto

    Da un form arrivano ad una pagina php dei valori (campi). Prima di metterli nel DB vorrei settare a NULL i campi vuoti, visto che una stringa vuota non diventa automaticamente NULL.
    Ho provato così, senza successo (i campi "vuoti" non diventano NULL):
    codice:
    foreach($_GET as $value){
    	if ($_GET='')
    		$value = "NULL";
    }
    Ho provato a mettere &$value ma mi da un errore (PHP 4.3.10).

    Qualche idea? In generale, il tipo di soluzione può andar bene?


  2. #2
    if ( $value == "" )

  3. #3
    Utente di HTML.it L'avatar di Fayble
    Registrato dal
    May 2002
    Messaggi
    141
    Non lo setta a NULL, rimane una stringa vuota.

  4. #4
    NULL senza le virgolette, ma non so se riesci a passare un valore NULL a quel modo.....

    Se fai una INSERT ed il campo e' caratterizzato NULL basterebbe ometterlo.

    altrimenti deve essere inserito senza apici.

    insert into tabella (campo1, campo2 , campo3) values ('$val1', NULL, '$val3')

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

  5. #5
    ma se imposti il db in modo

    create table nometabella
    (
    ....
    nomecampo tipocampo default NULL,
    ...
    );

    nn lo mette automaticamente NULL se è vuoto?

  6. #6
    Utente di HTML.it L'avatar di Fayble
    Registrato dal
    May 2002
    Messaggi
    141
    [supersaibal]Originariamente inviato da piero.mac
    NULL senza le virgolette, ma non so se riesci a passare un valore NULL a quel modo.....

    Se fai una INSERT ed il campo e' caratterizzato NULL basterebbe ometterlo.

    altrimenti deve essere inserito senza apici.

    insert into tabella (campo1, campo2 , campo3) values ('$val1', NULL, '$val3') [/supersaibal]
    E' quello che cerco di fare ma senza mettere un NULL esplicito, altrimenti perdo la generalità del codice.

    [supersaibal]Originariamente inviato da ilc0rv0
    ma se imposti il db in modo

    create table nometabella
    (
    ....
    nomecampo tipocampo default NULL,
    ...
    );

    nn lo mette automaticamente NULL se è vuoto? [/supersaibal]
    E' già così, evidentemente quando metto una stringa vuota la memorizza come tale "sovrascrivendo" NULL.

  7. #7
    [supersaibal]Originariamente inviato da ilc0rv0
    ma se imposti il db in modo

    create table nometabella
    (
    ....
    nomecampo tipocampo default NULL,
    ...
    );

    nn lo mette automaticamente NULL se è vuoto? [/supersaibal]
    campo = '' significa

    campo = empty.

    non e' piu' NULL ma vuoto. NULL e' come se non esistesse, non e' vuoto, neppure zero e manco negativo, non esiste;

    vuoto esiste e non contiene nulla.

    Infatti non e' bene avere campi NULL se non c'e' una precisa ragione, se non fosse altro perche' vanno gestiti come una terza entita': campo pieno, vuoto, NULLO. Oltretutto i campi NULL occupano piu' spazio di campi VUOTI.


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

  8. #8
    Utente di HTML.it L'avatar di Fayble
    Registrato dal
    May 2002
    Messaggi
    141
    piero.mac, è proprio quello che avevo appena detto.

    Imposto NULL di default, poi invio una stringa vuota e il database la memorizza come tale. Chiaramente non è più NULL se è ''.


    Sul secondo punto, vorrei capire cosa perdo/guadagno nel mettere '' oppure NULL. Infatti chiedevo anche questo all'apertura del thread. Più che lo spazio mi interessa la consistenza del DB, ma devo capire se la gestione dei valori NULL mi conviene usarla o meno.

  9. #9
    [supersaibal]Originariamente inviato da Fayble
    piero.mac, è proprio quello che avevo appena detto.

    Imposto NULL di default, poi invio una stringa vuota e il database la memorizza come tale. Chiaramente non è più NULL se è ''.

    Sul secondo punto, vorrei capire cosa perdo/guadagno nel mettere '' oppure NULL. Infatti chiedevo anche questo all'apertura del thread. Più che lo spazio mi interessa la consistenza del DB, ma devo capire se la gestione dei valori NULL mi conviene usarla o meno. [/supersaibal]
    Avevo risposto a ilc0rv0 ... comunque nulla toglie alla risposta che era concomitante alla tua, infatti la mia era preventiva e la tua deduttiva di una situazione.

    Il manuale Mysql sconsiglia l'uso di NULL se non necessario. Un campo puo' rimanere comodamente vuoto, che problema ti da'? NULL appesantisce tutta la struttura, in qualunque query SELECT, INSERT ecc... E' un terzo tipo di valore ed occupa piu' spazio di un campo vuoto. Detto questo detto tutto.

    Ti serve proprio che venga considerato NULL? usalo. Altrimenti no.



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

  10. #10
    Utente di HTML.it L'avatar di Fayble
    Registrato dal
    May 2002
    Messaggi
    141
    Ok, grazie.


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.