Link to home
Start Free TrialLog in
Avatar of Ted Penner
Ted PennerFlag for United States of America

asked on

Add records via phpMyAdmin

I got this error http://screencast.com/t/voYwHlFZJYL7 when I tried to add records to my new columns.  How can I get it to accept the data?
ASKER CERTIFIED SOLUTION
Avatar of Randy Downs
Randy Downs
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Ted Penner

ASKER

Thank you!

Is there anything else that should be different here?  Why Swedish?  I live in Texas.

Screenshot:  http://screencast.com/t/v8T7T6wUlCzI
Try this

http://stackoverflow.com/questions/367711/what-is-the-best-collation-to-use-for-mysql-with-php

The main difference is sorting accuracy (when comparing characters in the language) and performance. The only special one is utf8_bin which is for comparing characters in binary format.

utf8_general_ci is somewhat faster than utf8_unicode_ci, but less accurate (for sorting). The specific language utf8 encoding (such as utf8_swedish_ci) contain additional language rules that make them the most accurate to sort for those languages. Most of the time I use utf8_unicode_ci (I prefer accuracy to small performance improvements), unless I have a good reason to prefer a specific language.

You can read more on specific unicode character sets on the MySQL manual - http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html
You should also consider indexes, keys, default values & nulls.

Your checked field would probably be better as tinyint

http://stackoverflow.com/questions/2167973/datatype-for-checkboxes-in-php

The MySQL documentation recommends using tinyint(1) for boolean values, so tinyint(1) is probably the best.

http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html

http://stackoverflow.com/questions/5134281/is-it-good-to-use-default-null
You should set them to Default:Null as if the user doesn't provide any info for that fields, they should be null obviously.

http://stackoverflow.com/questions/1315481/sql-what-exactly-do-primary-keys-and-indexes-do

Primary key is usually used to create a numerical 'id' for your records, and this id column is automatically incremented.

For example, if you have a books table with an id field, where the id is the primary key and is also set to auto_increment (Under 'Extra in phpmyadmin), then when you first add a book to the table, the id for that will become 1'. The next book's id would automatically be '2', and so on. Normally, every table should have at least one primary key to help identifying and finding records easily.

Indexes are used when you need to retrieve certain information from a table regularly. For example, if you have a users table, and you will need to access the email column a lot, then you can add an index on email, and this will cause queries accessing the email to be faster.

However there are also downsides for adding unnecessary indexes, so add this only on the columns that really do need to be accessed more than the others. For example, UPDATE, DELETE and INSERT queries will be a little slower the more indexes you have, as MySQL needs to store extra information for each indexed column. More info can be found at this page.

Edit: Yes, columns that need to be used in ORDER BY a lot should have indexes, as well as those used in WHERE.