您的位置:首页 > 编程语言 > PHP开发

PHP学习总结(三)

2015-08-13 11:38 686 查看
一.MySQL数据库管理系统概述

1.mysql -h localhost -u root -p 123456//链接数据库

2.show databases

create databese name

drop database name

create database if not exists name

drop database if not exists name

use name

show tables

desc tablename

drop table if exists tablename

create table if not exists tablename

二.创建数据表

1.create table [if not exists] tablename(

字段1 列类型 [属性] [索引],

字段2 列类型 [属性] [索引],

。。。。。。

字段n 列类型 [属性] [索引]

)[表类型] [表字符集];

2.char//固定长度

varchar//可变长度,内容+1个字节

text//文本数据(文章)

blob//二进制数据(相片,压缩包)

ENUM//枚举,一次只能有一个值

SET//集合,一次可以用多个集合中的值,中间使用','分开

3.数据字段属性

unsigned//可以让空间增加一倍。-128-127 0-255只能用在数值型字段

zerofill//该字段自动应用unsigned,前导0

auto_increment//只能整数,自动增加1,字段值不允许重复

null 0 留空

null和not null//在意在插入每个字段都不要插入null

default//缺省值

4.创建索引

主键索引//primary key

唯一索引//unique

常规索引//index

全文索引//fulltext类型索引,MyISAM表类型使用

5.数据表类型及存储位置

MyISAM和InnoDB(共有12种)

create table() type InnoDB;

create table() engine InnoDB;

MyISAM表类型是默认的

MyISAM表类型

optimize table tablename//强调快速读取操作,有一些功能不支持

InnoDB表类型//支持一些MyISAM不支持的功能,占用空间大

功能 MyISAM InnoDB

事物处理 不支持 支持

数据行锁定 不支持 支持

外键约束 不支持 支持

表空间占用 相对小 相对大,最大两倍

全文索引 支持 不支持

6.MySQL默认字符集

GBK 2字节=1汉字,UTF8 3字节=1汉字

7.修改表

alert table

三.SQL语言设计与编写

1select[all|distinct]

like// _(任意一个字符)和%(0个或多个任意字符)

2.order by 字段[asc正序] desc倒叙

having是分组后的筛选条件

四.设计SQL语句时常用的MySQL内置函数

1.字符串函数

concat(s1,s2,s3......sn)//把传入字符串连接成一个字符串

insert(str,x,y,str1)//将str从x开始计数y个字符为str2

lower(),upper()//大小写转换。

left(str,x),right(str,x)//分别返回最左边的x字符和最右边的x个字符,如

果第二个参数为空,则什么也不返回

lpad(str,n,pad),rpad(str,n,pad)//对左边或者右边进行填充,直到为n个字

符为止。

trim(str),ltrim(),rtrim()//去掉空格

replace(str,a,b)//用字符串b替换str中出现的所有字符串a

strcmp(s1,s2)//如果s1比s2小,返回-1,如果s1比s2大,则返回1,如果相等

,则返回0

substring(str,8,9)//韩慧字符串中第x起y个字符串长度的字符。

2.数值型函数

abs(x)//返回绝对值

ceil(x)//返回大于x的最小整数

floor(x)//返回小于x的最大整数

mod(x,y)//返回x/y的余数

rand()//0-1之间的随机

round(x,y)//返回参数x的四舍五入的有y位小数的值

truncate(x,y)//返回数字x截断为y为小数的结果

3.时间函数

curdate()

curtime()

now()

unix_timestamp(date)

from_unixtime

week()

year()

hour()

minute

4.流程控制函数

if(value,t)

ifnull(value1,value2)

case when[value1] then [result1] else[default] end

5.其他函数

database()

version()

user()

inet_aton(ip)

inet_ntoa()

password()

mod()

五.在PHP中使用mysql扩展库操作数据库

1.$link=mysql_connect("localhost","root","password");

2.mysql_select_db("database",$link);

3.mysql_close();

4.mysql_errno(),mysql_error()//错误信息

5.语句分为两类select(返回结果集)和非select(返回影响行数)

6.myqsql_insert_id//最后自动增长的id

7.mysql_affected_rows//影响函数

六.在PHP使用MySQL扩展库处理结果集

1.从结果集中将记录取出

mysql_fetch_row()//返回索引数组

mysql_fetch_assoc()//返回关联数组

mysql_fetch_array()//返回索引和关联两个数组

mysql_fetch_object()//将一条记录以对象的形式返回

一次从结果集中取出一条记录

将指针移动到下一条记录(默认是第一行记录)

再取就是下一条记录,如果到结尾则返回false

mysql_data_seek($result,row)//移动 内部的指针

mysql_free_result()//释放结果集

mysql_num_rows()//获取结果集总数

七.使用PHP制作分页类

1.$_SERVER["REQUEST_URI"]//获取URI

2.strpos($_SERVER["REQUEST_URI"],'?')

3.$parse=parse_url($url);//解析URI

$parse["query"]//查询字符串

八.PHP的mysqli扩展库操作MySQL数据库

1.mysqli和链接有关的类

2.musqli_result表达数据库返回的结果集

3.mysqli_stmt

4.$mysqli=new mysqli()

mysqli_connect_errno(),mysqli_connect_error()

$mysql->close()

九.使用PHP中mysqli扩展处理结果集

1.mysqli_result

处理记录:

属性:num_rows

方法:data_seek()

fecth_assoc()

fecth_row()

fecth_array()

fetch_object()

free() close(0 free_result()

2.处理字段信息

file_count

十.使用PHP的mysqli扩展完成市区处理和一次执行多条SQL语句

1.使用mysqli执行多条语句

$mqli=new mysqli();

$sqls="";//多条用分号隔开

mysqli->multi_query();

$result=$mysqli->store_result();//获取结果集

mysqli->next_result();//调用下一个结果集

mysqli->more_result()//查询是否还有结果集

mysqli->close()

2.使用mysqli完成事物处理

a.关闭自动提交,set autocommit=0

b.开启事物,starttransaction

c.commit,rollback

d.打开自动提交

3.设置字符集

mysqli->set_charset("utf-8");

mysql_query("set name utf-8");

十一.使用PHP的mysqli扩展中预处理语句

mysqli_stmt预处理类(推荐你使用的类)

和mysqli和mysqli_result相比优点:

a.mysqli,mysqli_result能完成的他都能完成

b.效率高,只有数据不同

c.安全上:防止SQL注入

mysqli=new mysqli();

//准备一条语句在服务器中保存

{$stmt-$mysqli->stmt_init();}

$sql="insert into table() value(?,?,)"

$stmt->prepare($sql);

//给占位符号每个?传值(绑定参数)

$stmt->bind_param("s",varible)//i,d,s,b对应四种类型

//执行

$stmt->execute()

$stmt->data_seek();//移动指针

$stmt->fetch()//获取结果集

$stmt->bind_result(value1,value2...)//绑定结果集

$stmt->store_result()//一次性都取出结果

十二.php中使用MySQL的视图

1.创建视图

create [or replace] [algorithm={temptable|undefined}]

view view_name[(column_list)]

as select_statement[with [cascaded|local] check option]

wiht local check option [local]只要满足本视图的条件就可以更新

with cascaded check option [cascaded]则是必须满足所有针对视图的条件

,才可以更新

2.视图的三种类型

merge:

Temptable:

undefined:

algorithm=merge
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: