mysql strtolower_mysql(二)

一.重要函数总结

1.数组函数的概述

Array_reverse($arr); 翻转数组的值,其索引不翻转

Array_reverse($arr,true);翻转数组的值,其索引也发生了翻转

Array_push($arr,'北');作用是往数组的尾部压入单元。返回值是:压入单元成功后,数组的单元个数。/在数组的末尾添加一个值

Array _pop($arr); 弹出并返回数组的最后一个单元,并且数组的长度减一/在数组的末尾移除一个值

Array_shift($arr); 将数组开头的单元移除数组

Array_unshift($arr,’bei’); 在数组的开头插入一个或多个单元

Array_merge($arr1,$arr2);合并一个或多个数组

Array_unique($arr);移除数组中重复值

Array_count_values($arr);统计数组中所有值出现的次数

Array_sum($arr);计算数组中所有值得和

Array_diff($arr1,$arr2);计算数组的差集

Array_diff_assoc($arr1,$arr2);根据索引来计算数组的差集

Array_intersect($arr1,$arr2);计算数组的交集

Array_intersect_assoc($arr1,$arr2);根据索引来计算数组的交集

Array_key_exists(‘键’,$arr);检查给定的键名和索引是否在数组中/key_exists();

List();给多个变量赋值,即把数组的多个单元分别赋给多个值

Array_filter(‘输入的数组’,’自定义的函数名’)用回调函数过滤数组中的元素

list($arr[0],$arr[1],$arr[2]) = array(3=>'赵',1=>'钱',5=>'孙',2=>'李',0=>'燕');

2.字符串函数

addslashes();函数在指定的预定义字符前添加反斜杠,预定义字符是:单引号/双引号/反斜杠/null ;//防止sql注入

Stripslashes();函数删除由addslashes()函数添加的反斜杠;

Htmlspecialchars();将字符串中一些字符转换为HTML实体;//防止XSS攻击

Htmlspecialchars_decode();将HTML实体转换为字符

Implode(‘-’,$arr) 将数组以特定的分隔符转变为字符串;

Explode() 将字符串用分割符转变成一个数组;

Str_replace(‘要替换的字符’,’替换字符’,’包含要替换的字符’); 匹配和替换字符串;

Trim();去除字符串两边的空白字符或者指定的字符;

Ucfirst();把字符串中的首字符转换为大写

Ucwords();把字符串中每个单词的首字符转换为大写

Str_repeat(‘字符串’, 5);把字符串重复指定的次数

Strtoupper();把字符串转换为大写

Strtolower();把字符串转换为小写

Strrev();字符串翻转

Mb_substr(‘字符串’,’开始位置’,’截取的长度’,’utf-8’);截取中文字符无乱码

Substr(‘字符串’,’开始位置’,’截取的长度’);截取字符串

Str_split($str,2);将字符串分割成数组;其中最后一个参数代表分割数组中值得个数

strrchr() 函数查找字符在指定字符串中从正面开始的最后一次出现的位置

is_readable() 函数判断指定文件名是否可读

Str_pad(‘要填充的字符串’,’填充的长度’,’填充的位置(STR_PAD_RIGHT/STR_PAD_LEFT/STR_PAD_BOTH)’)函数 把字符串填充为新的长度

二.mysql数据库的操作

1.数据库cmd的常用命令

a.配置计算机的环境变量path中变量值添加:D:\wamp\bin\mysql\mysql5.5.8\bin;

B.登录mysql命令:mysql -hlocalhost -uroot -p 123

C.显示数据库:show databases

D.创建数据库:create database  shujuku

删除数据库:drop database shujuku

F.选择数据库:use shujuku

设置cmd的显示编码:set names gbk;

G.查看表:show tables;

H.查看表结构:desc aa(表名);

I.创建表:create table if not exists `aa`(id int auto_increment primary key, user_name varchar(20) not null default‘’ comment”用户名”);

J.查看创建的表:show create table aa;

K.修改表名:alter table aa rename aa1;

L.修改字段的数据类型:alter table aa modify  id  bigint;将id的int类型改为bigint

M.修改字段名:alter table aa change id iid bigint ;将id这个字段更名为iid

N.添加字段:alter table aa add name1 varchar(20) not null;

O.删除字段:alter table aa drop name1;

P.删除外键约束:alter table aa drop foreign key;

删除主键约束:alter table aa drop primary key;

Q. ---MyISAM引擎

CREATE TABLE TEST

(

ID int unsigned not null auto_increment,

name varchar(10) not null,

key(name,id)

)engine=MYISAM auto_increment=100;

---innodb引擎

CREATE TABLE TESTIdentity

(

ID int unsigned   not null auto_increment,

NID INT UNSIGNED ,

name varchar(10) not null,

key(id)

)engine=INNODB auto_increment=100;

MyISAM和innodb的区别:

1.Innodb不支持全文索引MyISAM支持全文索引

2.Innodb支持事务和外键

3.MyISAM是表锁innodb是行锁

4.执行大量的select时用MyISAM执行大量的insert和update时用innodb

2.数据类型

Mysql中的数据类型可以指定显示宽度

Tinyint:-128-----127

0------255

Smallint:-32768----32767

0---------65535

Mediumint:0-----16777215

Int:  0-----4294967295

Bigint:最大值

Float:单精度浮点型数据

double:双精度浮点型数据

Decimal:自定义精度浮点型数据decimal(10,2);

Char();固定长度的字符串  最大255字符

Varchar();可变长度的字符串255

Test     最大长度限制的可变长度

Date  以yyyy-mm-dd格式的日期

Time  以hh:mm:ss格式的时间

Datetime 以yyyy-mm-dd hh:mm:ss格式的日期 时间

Timestamp 以yyyy-mm-dd hh:mm:ss格式的日期 时间

Enum  一个数组,用户可从中选择其中一个

3.数据库查询

Select 属性列表from表名[where条件表达式] [group by属性名[having条件表达式]]  [order by属性名[asc|desc]] [limit(0,2)];

1.常用查询:

Select * from 表名;

Select name from 表名where name=’张三’;

Select name from 表名where name=”” AND id=””;

Select name form 表名where name=”” OR id=””;

Select id,name from 表名where idIN(101,102);

Select id,name from 表名where idNOT IN (101,102);

Select id,name from 表名where price (not)BETWEEN 2 AND 20;

Select * from 表名where cityIS (NOT) NULL

select *,IF(sva=1,’男’,’女’) as 别名from表名where id=1;

SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;

2.带like的字符匹配查询

Select id,name from 表名where namelike ‘s%’;

3.distinct去除数据库重复的

Select distinct name from 表名;

4.group by分组

Select id,count(1)  AS 别名from表名group by  id;

5.过滤分组

Select id, group_concat(name) AS 别名from表名group by  id having count(name)>2;

6.limit 限制查询结果数量

Select * from 表名limit 0,3;

7.order by 排序查询

Select * from 表名order by 字段名 desc(asc);

8.正则表达式查询

Select * from 表名where nameREGEXP ‘^b’;

拓展:字符“^”匹配以特定字符或者字符串开头的文本

字符“$”匹配以特定字符或者字符串结束的文本

字符“.”匹配任意一个字符

星号“*”匹配前面的字符任意多次,包括0次。加号“+”匹配前面的字符至少一次

方括号“[]”指定一个字符集合,只匹配其中任何一个字符,即为所查找的文本

“[^字符集合]”匹配不在指定集合中的任何字符

“字符串{n,}”,表示至少匹配n次前面的字符;“字符串{n,m}”表示匹配前面的字符串不少于n次,不多于m次。

9.GROUP_CONCAT 将某一字段的值按指定的字符进行累加,separator是分割符

select  group_concat(f_a  separator  '_') from 表名 group by f_b;

separator  是一个关键字,后面跟着要进行分隔的字符

4.数据库的添加,更新和删除

添加:INSERT INTO 表名(id,NAME,age,info) VALUES (NULL,'feicy',33,'student');

更新:UPDATE 表名 SET name ='police' WHERE id=17;

删除: DELETE FROM  表名 WHERE id=17;

索引

索引的优点:

1、通过创建唯一索引,保证数据库表每行数据的唯一性

2、大大加快数据查询速度

3、在使用分组和排序进行数据查询时,可以显著减少查询中分组和排序的时间

索引的缺点:

1、维护索引需要耗费数据库资源

2、索引需要占用磁盘空间,索引文件可能比数据文件更快达到最大文件尺寸

3、当对表的数据进行增删改的时候,因为要维护索引,速度会受到影响

索引的分类

1、普通索引和唯一索引

主键索引是一种特殊的唯一索引,不允许有空值

2、单列索引和复合索引

单列索引只包含单个列

复合索引指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用复合索引时遵循最左前缀集合

3、全文索引

全文索引类型为FULLTEXT,在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值。全文索引可以在

CHAR、VARCHAR、TEXT类型列上创建。MYSQL只有MYISAM存储引擎支持全文索引

4、空间索引

空间索引是对空间数据类型的字段建立的索引,MYSQL中的空间数据类型有4种,

分别是GEOMETRY、POINT、LINESTRING、POLYGON。

MYSQL使用SPATIAL关键字进行扩展,使得能够用于创建正规索引类型的语法创建空间索引。创建空间索引的列,必须

将其声明为NOT NULL,空间索引只能在存储引擎为MYISAM的表中创建

普通索引

CREATE TABLE `book` (

`bookid` INT(11) NOT NULL,

`bookname` VARCHAR(255) NOT NULL,

`authors` VARCHAR(255) NOT NULL,

`info` VARCHAR(255) DEFAULT NULL,

`comment` VARCHAR(255) DEFAULT NULL,

`year_publication` YEAR(4) NOT NULL,

KEY `year_publication` (`year_publication`)

) ENGINE=MYISAM DEFAULT CHARSET=latin1

唯一索引

CREATE TABLE `t1` (

`id` int(11) NOT NULL,

`name` char(30) NOT NULL,

UNIQUE KEY `UniqIdx` (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8

复合索引

CREATE TABLE `t3` (

`id` int(11) NOT NULL,

`NAME` char(30) NOT NULL,

`age` int(11) NOT NULL,

`info` varchar(255) DEFAULT NULL,

KEY `MultiIdx` (`id`,`NAME`,`age`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8

全文索引

CREATE TABLE `t4` (

`id` int(11) NOT NULL,

`name` char(30) NOT NULL,

`age` int(11) NOT NULL,

`info` varchar(255) DEFAULT NULL,

FULLTEXT KEY `FulltxtIdx` (`info`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8

空间索引

CREATE TABLE `t5` (

`g` GEOMETRY NOT NULL,

SPATIAL KEY `spatIdx` (`g`)

) ENGINE=MYISAM DEFAULT CHARSET=utf8

数据库的备份

数据库导出

Mysqldump -hlocalhost -uroot -p 数据库名称[表名称] > C:/filename.sql;

数据库的导入

Mysqldump -hlocalhost -uroot -p 数据库名

登录mysql后导入sql的命令

Source:”路径名”/filename.sql;

utf8mb4字符集

utf8mb4 字符集:支持emoji表情符号

限制:需要 >= MySQL 5.5.3版本、从库也必须是5.5的了、低版本不支持这个字符集、复制报错

php中的文件上传处理

Form表单中的enctype属性

要完成文件上传处理首先要在html的表单中的enctype属性改为multipart/form-data

upload_tmp_dir:当进行文件上传时,临时文件存放的目录,对于 Linux/UNIX用户来说,要特别注意,当前PHP用户必须拥有这个目录的写权限。upload_max_filesize:这个配置项指定了允许上传文件大小的最大值, php.ini默认值是2M。

全局变量$_FILES

$_FILES[‘input里面的name值’][‘name’];表示客户端文件的原始名称

$_FILES[‘input里面的name值’][‘type’];表示上传的文件类型

$_FILES[‘input里面的name值’][‘size’];表示已上传的文件的大小

$_FILES[‘input里面的name值’][‘tmp_name’];表示文件上传后,在服务器端存储的临时文件

$_FILES[‘input里面的name值’][‘error’];表示文件上传的相关错误信息

Move_uploaded_file(filename,destination);

Move_uploaded_file()函数 将上传的文件移动到指定的目录下

Filename:合法的上传文件

Destination:移动后的目标文件

PHP中强制类型转换

(int)--转换为整型

(bool)--转换为bool型

(float)--转换为浮点型

(string)--转换为字符串型

(array)--转换为数组

(object)--转换为对象

PHP中三目运算

条件运算符( ? :)的用法是:expr1 ? expr2 : expr2可以看出,条件运算符有 3个操作数,所以它是三目运算符。它的计算规则是:如果表达式expr1的值为TRUE,那么整个表达式的值就取expr2的值,否则,就取expr3的值。

下面的代码使用条件运·86·算符来获取两个数中最大的那个数。

$max = ($a>=$b) ? $a : $b当表达式$a>=$b为TRUE,那么整个表达式的值就是变量$a的值,这意味着,会将$a的值赋给变量$max,从而取得$a和$b之间较大的那个数

break 和continue语句

continue 语句和break语句的区别是,continue语句只是结束本次循环,而break语句是终止整个循环的执行,不再做条件的判断。

代码break语句的使用

define(PI,3.14);

for($r=1;$r<=10;$r++){

$area = PI * $r * $r;

if($area>100)

break;

echo "r=$r, area=$area";

echo "
";

echo "
";

}

?>

上述程序计算半径 1到10的圆的面积,直到面积大于100时为止。当面积area>100时,执行break语句,中断循环,不再执行剩余的几次循环。程序的执行结果如图2.25所示。从程序的执行结果可以看出,for循环只执行了5次就因break语句而退出,剩下的5次循环没有执行。

代码continue语句的使用

for($a=100;$a<=200;$a++){

if($a%3==0)

continue;

echo $a;

echo "
";

}

?>

上述程序将 100到2000之间不能被3整除对数输出。当$a能被3整除时,执行continue语句,结束本次循环,继续执行for循环语句。只有$a不能被3整除时,才使用echo语句将该数字输出。

PHP 函数的传值与传址

传址方式传递函数参数

$i = 100;

function func(&$n){

$n = $n+100; //因为传址传入变量$i,所以这里的变量$n引用的就是$i本身,此句等价于$i = $i+100

}

echo "调用函数func前:\$i=$i";

echo "
";

echo "
";

func($i); //将$i传入函数func,因为是传址方式,所以此时函数内的变量$n就是变量$i

echo “调用函数 func后:\$i=$i";

?>

传值方式传递函数参数

$i = 100;

function func($n){

$n = $n+100;

}

echo "调用函数func前:\$i=$i";

echo "
";

echo "
";

func($i);

echo "调用函数func后:\$i=$i.
";

?>

函数和变量作用域

变量作用域演示程序

$var = "some text";

function test(){

$var = "some text in function";

echo '这是局部变量$var:'.$var;

}

echo '这是全局变量$var:'.$var;

echo '
';echo '
';

test();

?>

在函数内部使用 global 关键字

$a = 1997;

$b = 1998;

function sum(){

global $a,$b;//声明全局变量

$b = $a + $b;  //3995

}

echo '$a='.$a;  //1997

echo '
';

echo '$b='.$b;  //1998

echo '
';

echo '
';

sum();

echo '$a + $b = '.$b; //1998

?>

PHP 的预定义变量

$GLOBALS:包含指向当前程序中全局范围内有效的变量,它是一个数组,该数组的索引(或键名)就是全局变量的名称。

$SERVER:该全局变量是一个包含诸如头信息、路径和脚本位置的数组。

常见的$_SERVER的元素包括PHP_SELF(当前正在执行的脚本的文件名)、

SERVER_ADD(当前执行脚本所在服务器的IP地址)、

SERVER_NAME (当前执行脚本所在服务器主机的名称)、

DOCUMENT_ROOT(当前脚本所在文档的根目录)、

SCRIPT_FILENAME(当前执行脚本的绝对路径)、

SCRIPT_NAME(当前脚本的路径)、

HTTP_REFERER(链接到当前页面的前一页面的URL)、

REQUEST_URI(访问此页面所需的URI)等。

$_GET:通过HTTP的GET方法提交至脚本的表单变量。

$_POST:通过HTTP的POST方法提交至脚本的表单变量。

$_FILE:通过HTTP的POST文件上传提交至脚本的变量。

$_COOKIE:通过HTTP的Cookies方法提交至脚本的变量。

变量的类型

判断变量的类型

is_integer 判断变量是否为整数.

is_string 判断变量是否为字符串。

is_double 判断变量是否为浮点数。

is_array 判断一个变量是否为数组。

设置变量的类型

Settype 设置一个变量的类型

$a=100;

Settype($a,’string’);//此时变量a被设置为字符串类型

获取变量的类型

Gettype()取得一个变量的类型

$a=100;

Gettype($a);//获取变量a的类型

escape() 函数可对字符串进行编码

Document.cookie;//js中获取cookie

Sprintf()和printf()函数区别

sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,

$number = 2;

$str = "Shanghai";

$txt = sprintf("There are %u million cars in %s.",$number,$str);

echo $txt;

//There are 2 million cars in Shanghai.

?>

printf是将一个格式化的字符串输出到屏幕。

$number = 9;

$str = "北京";

printf("在%s有 %u 百万辆自行车。",$str,$number);

//在北京有9百万辆自行车。

?>

获取url地址后面的后缀名

$url = "http://www.abc.com/abc/de/fg.php?id=1";

//这个是自己写的

function getUrl($url) {

$date = explode('?', $url);

$date = basename($date[0]);

$date = explode('.', $date);

return $date[1];

}

echo getUrl($url);//php

$file=”www.baidu.com”;

PHP.ini中的有关配置

Register_globals=off 如果设置为on,表单,url会话和cookie变量会成为全局变量

Magic_quotes_gpc=off 这个设置会自动转义提交的数据,其在开发代码应根据需求对数据经行转义,而不能依赖于这个设置,因此要将其禁用

自动打印

function window.onload() {

factory.printing.header = "" //页眉

factory.printing.footer = "" //页脚

factory.printing.portrait = false //true为纵向打印,flase为横向打印

factory.printing.leftMargin = 0 //左页边距

factory.printing.topMargin = 0 //上页边距

factory.printing.rightMargin = 0 //右页边距

factory.printing.bottomMargin = 0 //下页边距

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值