php mysql null και κενό

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
trelamenos333
Δημοσιεύσεις: 26
Εγγραφή: 24 Σεπ 2011 03:03

php mysql null και κενό

Δημοσίευση από trelamenos333 » 10 Ιουν 2014 14:57

Καλησπέρα παιδία,
Θα ήθελα να ρωτήσω κάτι όσο χαζό και αν ακούγεται.Οταν κάνω μια εγγραφή σε μια βάση (mysql) σε ένα πεδίο τυπου varchar το οποίο έχω βάλει μια default τιμή, τότε αν το πεδίο δεν το συμπληρώσω στην βάση γράφεται κάτι ή είναι null, όσον αφορά το κάτι ενοώ empty.
Υπάρχει επίσης κάποιο ερώτημα με το οποίο μπορούμε να δούμε αν η τιμή του πεδίου είναι null ή empty?
Πχ το πεδίο name με id 500.
Ευχαριστώ πολύ!

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

php mysql null και κενό

Δημοσίευση από alou » 10 Ιουν 2014 15:38

Δεν κατάλαβα ακριβώς τι εννοείς στην αρχή, αφού λες έχεις βάλει default τιμή στο πεδίο, είτε θα είναι αυτή είτε αυτή που ζήτησες να εγγραφεί.

Για να τσεκάρεις την τιμή αν είναι είτε null είτε '' υπάρχει το προφανές:

Κώδικας: Επιλογή όλων

SELECT * FROM some_table WHERE some_field = '' OR some_field IS NULL
αλλά καλύτερα normalize είτε σε null είτε σε empty string και μετά η σύγκριση, πχ

Κώδικας: Επιλογή όλων

SELECT * FROM some_table WHERE NULLIF(some_field, '') IS NULL
(νομίζω, δεν είμαι σίγουρος για τη σύνταξη)

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

php mysql null και κενό

Δημοσίευση από dva_dev » 10 Ιουν 2014 17:12

Αν εσύ στο πεδίο δώσεις κάποια τιμή θα περαστεί αυτή η τιμή, όποια κι αν είναι, το οποίο σημαίνει ότι εάν δώσεις κενό θα περάσει κενό, αν δώσεις null θα περάσει null. Πάντα με την προϋπόθεση ότι δεν υπάρχει κάποιο constraint που να μην περιορίζει για παράδειγμα το πεδίο να μην είναι null (π.χ. στο declaration του πίνακα να έχεις το πεδίο not null).
Αν δεν δώσεις κάποια τιμή τότε θα περαστεί αυτό που έχεις δώσει σαν default τιμή.

Π.χ.

Κώδικας: Επιλογή όλων

CREATE TABLE mytable (
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  f1 VARCHAR(45) NOT NULL DEFAULT 'value1',
  f2 VARCHAR(45) DEFAULT 'value2',
  PRIMARY KEY (`id`)
);

insert into mytable(f1,f2) values (null,null);
Αυτό δεν μπορεί να γίνει insert γιατί πάμε να βάλουμε null στο f1 - που το απορρίπτει το not null constraint

insert into mytable(f1,f2) values ('v11','v12');
Αυτό θα βάλει τις τιμές που δώσαμε στα f1,f2
insert into mytable(f1,f2) values ('v11',null);
Αυτό θα βάλει τις τιμές που δώσαμε στα f1,f2 (το f2 μπορεί να έχει τιμή null)

insert into mytable(f1) values ('v21');
Αυτό θα βάλει την τιμή που δώσαμε στο f1 και το f2 θα πάρει την τιμή value2 που λέει το default

insert into mytable(f2) values ('v32');
Αυτό θα βάλει την τιμή που δώσαμε στο f2 και το f1 θα πάρει την τιμή value1 που λέει το default

insert into mytable() values();
Αυτό θα βάλει τις τιμές value1 και value2 που λένε τα defaults στο f1 και στο f2.

trelamenos333
Δημοσιεύσεις: 26
Εγγραφή: 24 Σεπ 2011 03:03

php mysql null και κενό

Δημοσίευση από trelamenos333 » 12 Ιουν 2014 16:01

Ευχαριστώ πάρα πολύ παιδιά για τις απαντήσεις!
Βοηθήσατε και οι 2!
Ευχαριστώ και πάλι!

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες