I campi non devono essere vuoti

antonioamabile

Utente Attivo
21 Gen 2010
150
0
16
Ho un piccolo problema durante la realizzazione del mio db, uso easyphp 3.0 volevo sapere se esiste una funzione per far in modo che un campo non possa esser vuoto. Tipo come autoincrement che aumenta.....Ho provato con Null ma non sono riuscito in effetti non mi da errore quando non digito nulla in un determinato campo.
Vi ringrazio ciao e buone feste
 
ciao
alex ha ragione, però se il un campo e NOT NUL sarebbe opportuno fare una verifica del valore da inserire o uppare prima della query e se il valore e vuoto dare un avviso e non eseguire la query
 
Penso che voglia dire che gestisce il database tramite phpMyAdmin, fornito con EasyPHP (pessimo pacchetto). In questo caso dovrebbe bastare non spuntare nessuna casella. Mi sembra strano che non ti dia errore se lasci il campo vuoto.

Comunque, come ha suggerito borgo, dovresti effettuare il controllo prima di inserire le informazioni nel database. Immagino che per interagire con MySQL tu stia usando uno script PHP. Potresti postarne il sorgente?
 
infatti

Io avevo provato ma non risucivo....cmq ancora non ho capito come devo fare per avere sicuramente un campo pieno senza verificare attraverso codice php!!! Il db non lo ancora creato è solo un motivo di studio!!!
 
ciao
@alex: penso che tu abbia ragione
ho creato la tabella
Codice:
CREATE TABLE `prova_n` (
`id` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nullo` VARCHAR( 25 ) NULL ,
`no_nullo` VARCHAR( 25 ) NOT NULL ) ENGINE = MYISAM ;
e provato ad inserire un record con no_null ==""
e l'ha inserito:confused: sensa dare alcun errore.
comunque ribadisco a questo punto meglio verificare prima

dimenticavo: ho fatto tutte le combinazioni possibili e inserisce tutto
 
Mistero svelato. Nella documentazione di MySQL ho trovato questo passaggio:
A common error when working with NULL is to assume that it is not possible to insert a zero or an empty string into a column defined as NOT NULL, but this is not the case. These are in fact values, whereas NULL means "not having a value."
Traduzione per borgo:
Un errore comune mentre si lavora con NULL è pensare che non sia possibile inserire 0 o una stringa vuota in una colonna definita come NOT NULL, ma non è così. Essi sono valori validi, perché NULL significa "senza valore".
Quindi se ho una tabella con i campi campo1 e campo2, e quest'ultimo è NOT NULL posso fare:
Codice:
INSERT INTO tabella (campo1,campo2) VALUES ('valore1','')
Ma non posso fare:
Codice:
INSERT INTO tabella (campo1) VALUES ('valore1')
 
ciao
l'unica è verificare tramite php
se il valore che devi inserire è vuoto non inserisci, altrimenti si, il NOT NULL da errore solo nel caso che ti sia dimenticato di scivere i dati (vedi post di alex)

@alex
ok perfetto, ma se metto
INSERT INTO tabella (campo1,campo2) VALUES ('valore1',NULL)
? o ancora meglio
$valore2=NULL;
INSERT INTO tabella (campo1,campo2) VALUES ('valore1','$valore2')

?
 

Discussioni simili