enum παράδοξο?

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

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

Απάντηση
Άβαταρ μέλους
papatzas
Δημοσιεύσεις: 227
Εγγραφή: 03 Δεκ 2005 14:23

enum παράδοξο?

Δημοσίευση από papatzas » 22 Μαρ 2008 22:50

Θέλω να εκθέσω κάτι που μου κάνει εντύπωση.. ή κάτι δεν γνωρίζω

έχω στη βάση ένα πεδίο

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

`public` enum('Y','N')  NOT NULL default 'Y',
απο την html φόρμα δεν έχω δώσει default επιλογή , και όταν κάνω Post χωρίς να επιλέξω το radio ανάμεσα σε Y ή Ν , περνά ώς κενό στη βάση... όχι Υ που θα επιθυμούσα..
:-)

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

enum παράδοξο?

Δημοσίευση από cherouvim » 23 Μαρ 2008 08:13

MySQL 5.0.15

Όντως το ENUM είναι σπασμένο.

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

+----------+--------------------------------
| Table    | Create Table
+----------+--------------------------------
| somedata | CREATE TABLE `somedata` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(12) NOT NULL,
  `sex` enum('M','F') NOT NULL default 'M',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+----------+--------------------------------

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

+----+---------+-----+
| id | title   | sex |
+----+---------+-----+
|  1 | foo     | F   |
|  2 | bar     | M   |
|  3 | example |     |
+----+---------+-----+
Το issue είναι: http://bugs.mysql.com/bug.php?id=10120

Το σπασμένο MySQL enum επιτρέπει οτιδήποτε μέσα και το μετατρέπει σε blank. Ένα warning εκδίδεται αθόρυβα.

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

mysql> update somedata set sex='foo';
Query OK, 0 rows affected, 3 warnings (0.00 sec)
Rows matched: 3  Changed: 0  Warnings: 3

mysql> show warnings;
+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1265 | Data truncated for column 'sex' at row 1 |
| Warning | 1265 | Data truncated for column 'sex' at row 2 |
| Warning | 1265 | Data truncated for column 'sex' at row 3 |
+---------+------+------------------------------------------+
3 rows in set (0.00 sec)

Απάντηση

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

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

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