数据库操作
0.使用phpMyAdmin操作mysql数据库,实现创建 库和表
0.1 首页 左边就是所有的数据库(每个数据库代表一个项目)
0.2 单击数据库名 打开的所有表,右边就可以做相应操作了
1.命名规范
使用字母数字下划线,字母开头
字母都是使用小写(英文或英文缩写,多个单词之间使用下划线分割)
如果涉及多个单词使用下横杠分割
惯例:
自定义名称使用小写:库名,表,字段名
sql语句关键字:大写
2.建立数据库
先起一个名字,选择编码[排序规则](utf8_general_ci)
提示:php文件保存的编码utf-8,页面显示编码utf-8,数据库编码utf8_general_ci
3.创建数据表
3.1先起一个表名字,可以根据要保存的数据来确定
0)确定表字段, 字段通过项目中分析获取
1)表注释:
2)选择表类型;
表存储引擎类型(ENGINE)常用分为 MyISAM 和 InnoDB 两种类型。
a)InnoDB 提供事务支持,执行大量的INSERT或UPDATE,性能高于MyISAM
b)MyISAM 不支持事务处理,执行查询数据上性能高于InnoDB,
同时方便的在不同的操作系统和平台之间进行移植。
3)选择编码[整理](utf8_general_ci),不选择继承数据库编码
3.2 字段名(遵循命名规范)
字段通过项目中分析获取
比如:留言表, 对照留言页
(id,主题,手机号,联系人(conect),性别,留言内容,留言时间)
其中id(名字自定义)是主键:是唯一的,一个数据表中只能包含一个主键,一般设置成自增长,可以用来查询数据,设置方式选择"A_I",添加数据时不需要设置
3.3 字段类型和长度
int(10) 整型(10位)
char(10) 定长字符型
varchar(10) 不定长字符型
text 不限定长度
date 时间日期
decimal(5,3) 定点数(数字型)(共多少位,小数点后几位)
长度:就是实际要保存的数据长度
其他设置
1)缺省值(default)
在插入数据时,如果没有设置这个字段值将会保存设置的默认值
2)是否为空(is null not null)
设置此字段不为空,添加数据时此字段就必须输入值;
一般和缺省值一起使用,不为空但设置缺省值,插入时就可为空来
3)自动增加( A_I auto_increment)
作为主键的列,每个表只允许设置一个,每加一条记录,系统会自动填充这个字段的值,为上一次插入的ID+1;用于标示唯一
4)属性
BINARY二进制
UNSIGNED无符号数 保存无负数数值,插入负数显示为0
UNSIGNED ZEROFILL 加前导0 如:int(4),插入1,保存为0001
5)排序规则(编码):一般为空,默认继承表的字符集
6)注释:说明此字段的作用
3.4 修改表字段(先选择要修改的表)
选择"结构"菜单
3.5 修改表名(先选择要修改的表)
选择"操作"菜单
3.6 操作数据(phpmyadmin可视化,先选择表)
使用"插入" "浏览" "删除" "修改", 查看执行的sql语句
注意:没有加主键字段(A_I)的表,无法修改数据和删除数据
4. SQL语句(增删改查)
惯例SQL语句中关键字使用大写
语句中关键字之间使用空格隔开,
多个字段之间使用逗号隔开,字段不需要加单引号或双引号
`name`,当自定义名称和Mysql关键字重名,使用上面两个点,为了避免错误
自定义名称:数据库名,表名,字段名
4.1 查询 user(用户表)
4.1.1 查询所有数据
SELECT * FROM user
* 所有字段
4.1.2 查询显示指定字段
SELECT uid,username,tel FROM user
4.1.3 查询指定条件
SELECT uid,username FROM user WHERE uid=1
SELECT * FROM `user` WHERE username='user1'
条件:> < >= <= <>
多个条件使用 AND OR 连接
4.2 增加
INSERT INTO user(username,password,tel,sex,email,ip,regtime) VALUES('user9',md5('123456'),'13245678999','女士','sdfsd@sdffd.com','127.0.0.1','0')
检查:关键字 表名 字段名 字段类型 字段数量 字段长度
容易错误点: 字段数量不一直,忘记单引号,字段长度不对导致数据保存不完整
4.3 修改
4.4 删除
5. PHP链接MySql,实现表数据的增删改查
三种方式:mysql\mysqli\pdo;使用此扩展函数检查:php.ini是否开启
以下是mysql方式:
5.1连接mysql数据库服务, 主机地址(localhost代表本机) 数据库账号 密码
(数据库地址[:3306],数据库用户名,数据库密码)
$conn = @mysql_connect('localhost','root','');
@屏蔽警告和提示错误
5.2选择需要操作的数据库
mysql_select_db('myitem',$conn);
5.3执行sql
5.3.1设置编码
mysql_query('SET NAMES utf8',$conn);
5.3.2屏蔽宽字符集漏洞
mysql_query("SET character_set_client=binary", $conn);
5.3.3执行 增删改查
注意:sql:对于php就值字符串,所以可以使用字符串拼接方式构建
mysql_query($sql,$conn);
1)通过以下函数获得最后插入的数据表中记录的自增长值;
$id=mysql_insert_id();返回最后添加的记录自增长字段的值;
作用:通过返回值,大于0说明添加成功; 使用此值关联其他表
5.4关闭连接释放资源
mysql_close($conn)