1.首先是创建表,它的语法比较严厉,表的最后一列的逗号千万不能加,不然出错,将不能创建表:
w3school的示例:
$sql = "CREATE TABLE Persons
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
如果在Age int后增加逗号就不能创建了;
2.表的编码问题。
现在都流行utf8编码,所以创建表的时候最好加上TYPE=MyISAM CHARACTER SET=utf8,上面的例子就修改为:
$sql = "CREATE TABLE Persons
(
FirstName varchar(15),
LastName varchar(15),
Age int
)TYPE=MyISAM CHARACTER SET=utf8;";
另外在执行查询之前,最好都加上下面几句(因为网络查下来啥都有,所以都写下来,应该不出事吧):
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $con);
mysql_query("set names 'utf8'");
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER_SET_CLIENT=utf8');
mysql_query('SET CHARACTER_SET_RESULTS=utf8');
3.主键与AUTO_INCREMENT的关系
在w3school上介绍如下:
主键和自动递增字段
每个表都应有一个主键字段。
主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。
主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。
下面的例子把 personID 字段设置为主键字段。主键字段通常是 ID 号,且通常使用 AUTO_INCREMENT 设置。AUTO_INCREMENT 会在新纪录被添加时逐一增加该字段的值。要确保主键字段不为空,我们必须向该字段添加 NOT NULL 设置。
但其实忽略了一条很重要的规则:
MySQL表中只能有一个AUTO_INCREMENT字段,而且这个字段必须被定义为键。除了字段的约束,MySQL也允许表级的约束,比如主键和外键、索引和惟一约束。
这就解释了我开始为什么建表时把一个其他的字段作为主键,把id设置为AUTO_INCREMENT一直不成功的原因了。
今天就学习到这里了,下次继续整理归纳吧。
这么久不更新,忙得很啊
哇,还不知道有人等我更新?受宠若惊啊,马上准备一下