Visualizzazione dei risultati da 1 a 7 su 7

Discussione: MySQL NULL

  1. #1

    MySQL NULL

    Domanda stupida: come si fa a mettere a NULL un campo di in database MySQL?

    Io ho pensato a questo
    Codice PHP:
    $_POST['a_msn']==""?$msn=NULL:$msn=$_POST['a_msn'];
    $query="UPDATE members SET msn='$msn' WHERE nome='$nu'";
    mysql_query($query$db)
        or die(
    mysql_error()); 
    solo che quando la variabile $msn è impostata a NULL in php nel momento in cui viene memorizzata nel database mi imposta un bel campo vuoto...

    come fare?

  2. #2
    perche' tra apici e' una stringa.

    codice:
    $query="UPDATE members SET msn=NULL WHERE nome='$nu'";

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

  3. #3
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    Poichè usi una variabile php dentro ad un'altra variabile stringa, in caso di valore nullo questa viene dinamicamente convertita in stringa vuota. Inoltre non ci vanno gli apici (parlo di quelli attorno a $msn), in quanto indicano che al loro interno c'è una stringa.

    La sintassi corretta in sql sarebbe:
    UPDATE members SET msn = NULL WHERE nome='$nu'
    ovviamente il campo non deve essere "not null"

    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  4. #4
    certamente. Ho volutamente ignorato la prima riga poiche' cosi' come e' impostata potrebbe rendere un NOTICE in caso di $_POST['a_msn'] non settato

    questa:

    $_POST['a_msn']==""?$msn=NULL:$msn=$_POST['a_msn'];

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

  5. #5
    ok ragazzi io ho la testa dura e non mi è chiara una cosa...
    con
    Codice PHP:
    $query="UPDATE members SET msn=NULL WHERE nome='$nu'"
    devo scrivere un'enormità di righe di codice... :S
    Codice PHP:
    if($_POST['a_msn']==NULL)
      
    //la query scritta sopra
    else
      
    //la query che ho scritto io inizialmente con la variabile 
    possibile che non c'è un sistema più "contratto"?
    anche perchè avendo un po di controlli mi viene fuori un bel temino :S

  6. #6
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    se $_POST['a_msn'] ti arriva da un form, non sarà null, ma sarà eventualmente una stringa vuota, quindi il controllo sul valore va fatto con empty()

    un modo più compatto per scrivere la cosa:
    Codice PHP:
    $msn = (empty($_POST['a_msn'])) ? 'NULL' "'{$_POST['a_msn']}'";
    $query "UPDATE ..... msn = {$msn}  WHERE ......."
    ma siamo sicuri che sia più leggibile?

    altra domanda, ma perchè non inserire semplicemente una stringa vuota in quel valore?

    comunque valuta l'uso di classi ad-hoc per semplificarti la vita e rendere il tutto ben leggibile, evitando sfilze di if/else, ad esempio per la validazione dei form:
    http://php.html.it/articoli/leggi/90...one-a-oggetti/
    e magari un wrapper per il database tipo Zend_Db (o altro a tuo piacimento)
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  7. #7
    grazie m4rko!

    ps: secondo me è più leggibile! xD

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.