每日一记
文件包含
文件1
function add()
{
echo '执行';
}
add增加,del删除,update更改,select查询
文件2
include ('文件1.php'); //调用文件
add(); //调用函数
include与require区别
include在没有这个文件时报错并执行,但是require报错但是不执行
include_once与require_once区别
可以重复调用文件,区别同上
数组
定义
索引数组:
$arr=[1,2,3,4,5];
var_dump($arr);
或
$arr=array(1,2,3,4,5);
var_dump($arr);
关联数组:
$arr=[
'A'=>'a',
'B'=>'b';
];
var_dump($arr);
二维(多维)数组:
$arr=[
'A'=>[
'a',
'b',
'c',
]
];
var_dump($arr);
操作
增加:直接声明$arr[位置]=’内容’;
删除:unset($arr[位置]);
修改:重新定义
对于多维数组要var_dump($arr[第一层位置][第二层位置]…….);
获取循环次数:echo count($arr);
遍历
foreach ($arr as $key => $value) {
echo $key.'<br/>';
}
list($a , $b , $c , $d , $e) = $arr;
echo $a,$b,$c,$d;
一一赋值,多出来的跳过,只对有索引的有效
while (list($key , $val) = each($arr)) {
echo $key.'--'.$val.'<br/>';
}
排序
sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列
数组的合拼
$array1 =array('a','b','c');
$array2 = array('a1'=>'php','a2'=>'python','a3'=>'java');
$array3 = array_merge($array1,$array2);
添加到指定位置
array_splice(数组,位置,删除几个,增加元素)
超全局数组
配合html前端页面method=’get/post’
var_dump($_GET);获取GET的参(显示内容在URL)
var_dump($_POST);获取POST的参(不显示)
var_dump($_REQUEST);都可以获取
前端name所设置的会把参数传到后端
name=’username’
$username=$_GET[‘username’];
错误处理
notice注意 //后续代码会继续执行
warning警告 //后续代码会继续执行
fatal error致命错误 //后续代码不会继续执行
@可以消除警报(除了fatal error)
在ini配置文件里display_errors:On可以取消报错(所有)
在ini配置文件里error_log找错误日志
日期函数
时间戳:时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
配置文件可改时区,不详细讲
数据库简介(dos操作)
对数据库的解释:
数据库相当于文件夹,表相当于文件,字段就是内容。
注释符:
# "-- " /* */
<不是内部命令就更改环境变量>
【库操作】
连接数据库:
mysql -uroot -p
查库:
show databases;
建库
creat database 库名;
删库
drop database 库名;
退出
mysql > exit;
mysql > quit;
mysql > \q;
重命名数据库
RENAME database olddbname TO newdbname
【表操作】
进库:
use 库名;
建表:
creat table 表名(id int,字段名 数据类型(长度) , 字段名 数据类型(位数));
建表命令:
show creat table 表名;
改表名:
alter table 原表名 rename 新名字
查表:
show tables;
select * from table_name
删表:
drop table 表名;
查表结构:
desc 表名; //字段类型,主键,是否为空等属性,但不显示外键
【字段操作】
建表字段:
alter table 表名 add 字段名 (字段类型)
改表字段:
alter table 表名 change 原来的字段名 现在的字段名 数据类型(位数);
改表字段值:
alter table 表名 modify 字段名 修改后的值
删表字段:
alter table 表名 drop 字段名
更改表的存储引擎:
alter table 表名 engine=存储引擎名;
给所有字段增加数据:
insert into users (字段名1,字段名2,字段名3)values(值1,值2,值3);
【插入顺序】
first
alter table 表名 add 字段(字段类型) first
after
alter table 表名 add 字段名(字段类型) after (在谁后面)
【其它命令】
显示系统特定资源的信息
show status; //例如,正在运行的线程数量。
mysql数据类型
整形:
int4字节,bigint8字节
浮点型:
float(m,d)
double(m,d)
decimal(m,d)
字符型:
char定长字符串(常用于32位md5密码)
varchar变长字符串(常用于用户名)
时间型:
4字节,年月日格式
auto_increment:
自动增加,只用于整形,priimary key设置起始值(默认为1)
总结内容
以上内容皆可使用phpMyAdmin和NavicatPremium更改
索引
普通索引:
alter table 表名 add index(字段);
唯一索引:
alter table 表名 add unique(字段);
主键索引:
alter table 表名 add primary key(字段);
全文索引:
alter table 表名 add fulltext(字段);
显示索引:
show index from 字段名
查询数据
select选择时如果要限制条件就在后面加上where和条件
where age<>50; == where age!50 //取非
age in(18,16,17); //固定查询的值
address like 'Ax'; //模糊查询A开头的
address like 'xAx'; //模糊查询含A的
select * from 表名 order by 列名 desc; //降序显示,默认为升序(asc)
select * from 表名 limit 5,5; //从第五个值开始往下取5个值
select * from 表名 group by 列名; //分组(只保留一个,去重)
select count(*) from 表名; //显示该列有几个数据
select 列名 as 别名 from 表名; //给该列起别名
注意:
and优先级高于or,因此先计算and表达式再运算or表达式
聚合查询:
count()返回行数
sum()返回某列值的和
avg()返回某列平均值
max()返回某列最大值
min()返回某列最小值
分组查询:
select * from 表名 group by 字段名;
select * from 表名 limit 开始行数,结束行数;
select * from 表名 as 重命名;
mysql子查询:
类似于嵌套循环,将内层的结果传递到外层进行下一步操作
大致有:where,from,exists三个
联合查询(两个表的查询):
原理——————取得两个结果集的并集
union默认选取不同的值。如果允许重复的值,请使用union all(不会去掉结果中的重复行)
union all 查询全部而且不会消除重复的行
查询数据库
内联查询:
select 列名1 from 表名1 inner join 表名2 on 条件;
左连接查询(以左边为基准):
select 列名1 from 表名1 left join 表名2 on 条件;
右链接查询(左边没有的不会显示):
select 列名1 from 表名1 right join 表名2 on 条件;
嵌套查询:
不建议,太慢