tags:

views:

11

answers:

1

I am creating my first serious project in PHP and I want to make sure I have my database setup correctly. It is utf8_general_ci and for example the max I want usernames to be is 20 characters, so the username field in the database would be a varchar(20)? Sorry if this is stupid, it is just I read something somewhere that is making me question myself.

+2  A: 

Yes you're right:

CREATE DATABASE my_test_db
   DEFAULT CHARACTER SET utf8
   DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

USE my_test_db;
Database changed

CREATE TABLE users (username varchar(20));
Query OK, 0 rows affected (0.04 sec)

INSERT INTO users VALUES ('abcdefghijklmnopqrstuvwxyz');
Query OK, 1 row affected, 1 warning (0.00 sec)

SELECT * FROM users;
+----------------------+
| username             |
+----------------------+
| abcdefghijklmnopqrst |
+----------------------+
1 row in set (0.00 sec)
Daniel Vassallo
thanks, what would I do without SO (gotta wait 4min to accept..) :D
Dr Hydralisk
+1 - seconded. LENGTH(username) gives 40 - so MySQL is doing the right thing.
Will A