黑马程序员_PHP_课程同步笔记day21:表定义语句

时间:2019-05-12 18:45:42下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《黑马程序员_PHP_课程同步笔记day21:表定义语句》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《黑马程序员_PHP_课程同步笔记day21:表定义语句》。

第一篇:黑马程序员_PHP_课程同步笔记day21:表定义语句

【黑马程序员】PHP课程同步笔记day21:表定义语句

表定义语句 创建表: 基本形式:

Create table [if not exists] 表名(列定义列表,[索引或约束列表])[表选项列表];说明:

1.上述列表都是指”多项并列项”,每一项之间用(,)分开 2.其中中括号部分是可以省略的 列定义:

每一个列定义的基本形式:

列名

列类型

[列属性列表] 说明:

1.列类型,就是数据类型,其中还可能会需要跟类型有关的相应设定。2.列属性有6个,相互之间用空格隔开就可以:

a)Auto_increment:表示自增长,用于整数类型。一旦设定了此属性,则也同时要求设定一个”key”属性,就是后面那2个:primary key或unique key b)Primary key:表示主键,用于唯一确定一行的数据

c)Unique key :表示唯一键,用于设定某个字段的值在所有行中是唯一的(不可重复的)d)Not null :表示不能为空(非空属性)e)Default XX值:设定默认值,当该字段没有赋值或赋值为NULL时,自动获得该值

黑马程序员济南中心 编著

f)Comment ‘字段说明文字’:表示一种可以解释该字段含义,但又不属于”注释”的内容。

索引:

索引是一种数据库内部为了加快数据查找(搜索)速度的内部机制,其设定某个字段”有索引”,则该字段作为条件(比如where age=22)进行查找就会极大提高其速度。

索引设定形式:

通用形式:索引类别(字段名1,[字段名2],[字段名3]....);//至少一个字段 索引类别有:

普通索引:key [索引名](字段列表)

就只有索引的作用

唯一索引:unique key [索引名](字段列表)具有索引作用,而且具有唯一性 主键索引:primary key(字段列表)

具有索引作用,而且具有主键特性 外键索引:foreign key[索引名](字段列表)reference 其他表(对应字段列表)具有索引作用,而且具有对应其他表的字段值的作用(外键作用)全文索引:fulltext key [索引名](字段列表)具有索引作用,但mysql对中文无法正常发挥作用 索引的弊端:

降低(减慢)增删改数据的效率(速度)约束:

约束是指数据库中预先设定的对数据的”规定”,”要求”,”条件”等等

约束,是指在”建表”的时候,预先设定好的,以期对”后续写入数据”进行”检查”来决定是否满足设定的约束条件,结果有两种可能:满足写入成功,不满足写入失败。

有以下几种约束:

黑马程序员济南中心 编著

唯一约束

: unique key(字段列表)主键约束

:primary key(字段列表)外键约束

:foreign key(字段列表)references 其他表(对应字段列表)非空约束

:not null 默认约束

:default XX值 检查约束

:check(某字段的条件)说明: 1.前3个约束,其实同时也是索引,无需额外设定 2.非空约束和默认约束是”字段属性”,无需额外设定 3.检查约束mysql不支持该功能。。

表选项:

表选项是对一个表的额外属性的设定,多个设定之间用逗号(,)隔开 如下几个选项可设定:

Auto_increment = 自增长数字的起始值 Charset = 字符编码名 定

Collate = 排序规则名

//可以不设定,使用数据库级别的设定

//可以不设定,默认为1

//可以不设定,就是使用数据库级别的设Comment = ‘表说明文字’ Engine = 存储引擎名 存储引擎

存储引擎其实就是将”成千上万”的数据,存入到硬盘(文件)的内部机制(方式).不同的存储引擎在性能(速度),功能,资源消耗方面有所不同。

//可以不设定,默认是”InnoDB”

黑马程序员济南中心 编著

一个重要的观念:没有一个性能最好,功能最全,资源消耗最小的存储引擎。主要存储引擎如下:

修改表: 总体思想:

1.修改表是一个表建立之后的补救工作,不应该当做一个”常规工作”.2.建表能完成的事情,修改表几乎都能完成 3.语法:

Alter table 表名 修改项1,修改项2.....;其中,修改项可以包括:

字段:可以增删改 索引(约束):可以增删; 表选项:只能修改(从新设定)

黑马程序员济南中心 编著

删除表:

drop table 【if exists】 表名;

其他相关语句:

     显示所有表: show tables;

显示某表的结构: desc 表名; 或:describe 表名; 显示某表的创建语句:show create table 表名; 重命名表:rename table 旧表名 to 新表名; 删除索引:drop index 索引名 on 表名。

黑马程序员济南中心 编著

第二篇:黑马程序员_PHP_课程同步笔记day18:PHP函数

【黑马程序员】PHP课程同步笔记day18:PHP函数

PHP函数 1.概念

将一段常用的功能代码,进行封装,然后起个名字,叫”函数” 使用函数,可以减少我们的工作量。对于后期的项目维护,十分方便。2.函数定义格式

Function functionName(形参1,形参2,形参3......){

函数的功能代码

[return 参数r] } 函数语法格式说明:

Function是系统关键字,不分大小写。

functionName是自定义的函数名称。函数名的命名规则与变量一样,只是不加$符号。

()定义函数时的参数,该参数又称为”形参”。

形式参数:主要用来接收调用函数者,传递过来的数据。

形参可以是多个,多个形参之间用逗号隔开,也可以没有形参

形参其实就是一个变量的名称,主要用来临时存储数据的。{}是函数的功能代码。Return语句:

向谁返回内容?谁调用了该函数,就向谁返回。

返回什么内容?该内容的类型不限制,可以是任何数据类型

黑马程序员济南中心 编著

Return语句,一旦执行,函数将中止。也就是return语句之后的函数代码不再执行。

Return 语句返回一个值,并退出函数。

3.函数调用

函数定义是不会自动执行的。函数必须要经过调用,才能看到结果 调用函数和定义函数不分顺序。4.函数参数

a)形式参数(形参):形参主要用来接收调用函数传递过来的数据。

i.形参一般是变量,不能是具体的值

ii.形参只能在函数内部使用

b)实际参数(实参):向定义函数传递的数据

i.实参可以是具体值,也可以是一个变量

c)形参和实参的个数,一般情况下必须一致 Function showInfo($a){ Echo “OK”;} $a = 100;showInfo($a);函数参数传递 1.值传递(拷贝传值)将一个变量的值,”拷贝”一份,传给形参

黑马程序员济南中心 编著

在函数内部,对形参进行了修改,而函数外的这个变量不会改变 函数内的形参,与函数外的实参,是相互独立的,没有任何联系的

在PHP中,默认”值传递”的有:字符型、整型、浮点型、布尔型、数组、NULL

2.引用传递

将一个变量的地址传给形参,即形参与变量指向的是”同一物”.变量和参数之间是相互联系,修改一个,另一个会跟着变。

参数在使用引用传递时,需要在”形参”前加一个”&”符号。”实参”前不能添加。

默认引用传地址:资源和对象

黑马程序员济南中心 编著

3.默认参数

PHP支持默认参数。

当实参格式少于形参个数时,那么少的那个实参可以用末日的形参来代替

匿名函数

1.概念

没有名字的函数就是匿名函数,它不能单独定义也不能单独调用 匿名函数一般用来给其他变量赋值的。

黑马程序员济南中心 编著

2.匿名函数的两种用法

i.将匿名函数当成一个数据,赋给其他变量

ii.将匿名函数作为函数的参数来使用

变量作用域

变量作用域:就是变量生效的范围

在PHP中三种变量作用域:全局变量、局部变量、超全局变量。1.全局变量

全局变量:在函数外部定义的变量,称为”全局变量”。

黑马程序员济南中心 编著

全局变量,在网页执行完毕,就消失了。在JS中,全局变量,可以直接在函数内部来使用 在PHP中,全局变量不能直接在函数内部使用 2.局部变量

局部变量:在函数内部定义的变量,称为”局部变量”。局部变量,只能在函数内部来使用 局部变量,在函数执行完毕后就消失了。3.在局部作用域中访问全局变量---global关键字

Global关键字,只能在函数内部来使用

不能在使用global关键字时,直接给变量赋值。只能是先声明为全局,再赋值。

$GLOBALS超全局数组

“超全局数组变量”可以在网页的任何地方使用,包括函数内部和函数外部。$GLOBALS超全局数组中包含的内容有:$_GET、$_POST、$_COOKIE、$_FILES

黑马程序员济南中心 编著

第三篇:黑马程序员_PHP_课程同步笔记day17:数组介绍

【黑马程序员】PHP课程同步笔记day17:数组介绍

数组 1.数组的概念

数组是一组值的集合,变量是单个值的容器,而数组是多个值的容器 2.数组的分类

1.枚举数组:数组的下标是从0开始的正整数

2.关联数组:数组的下标可以是字符串

$arr = array(“db_host” => “localhost”, “db_user” => “root”, “db_pwd” =>”root”,);

3.混合数组:下标既有整型的,也有字符串的

$arr = array(“db_host” => “localhost”, “db_user” => “root”, “db_pwd” =>”root”, “黑马程序员”, “济南分校”);

4.多维数组:数组的元素的值的类型是一个数组。数组套数组。数组元素的下标只能是正整数和字符串。数组元素的值,可以是任何类型,当然可以是数组。

黑马程序员济南中心 编著

$arr = array(Array(10,11,12,13), Array(20,21,22), Array(30,31), TRUE,NULL);3.数组的创建

a)使用array()来创建数组 $arr = array([$key=>]$value, [$key=>]$value, [$key=>]$value,.....);语法说明:

$key代表数组元素的下标,可以省略。

$key的类型可以是整型和字符型,如果$key省略,默认的数组应该是枚举数组。$value代表数组元素的值,值可以是任何类型。“=>”重载下标,或者重新指定下标。多个数组元素之间用英文下的逗号隔开。b)使用[]创建数组的语法

语法1:$arr[] = $value

黑马程序员济南中心 编著

说明: 1)如果数组不存在,则会创建一个数组 2)第一个元素就是下标为0的元素 3)如果数组存在,则相当于添加一个新元素 4)新元素的下标,应该是最大整数下标+1 语法2: $arr[$key] = $value 说明:

1)同时指定下标,指定的下标是多少,就是多少。2)如果指定的数组不存在,也会创建一个数组 3)如果指定的数组存在,则添加一个新元素 $arr[] = 100;$arr[] = 200;$arr[5] = 500;$arr[“a”] = “abc”;多维数组

1、使用array()来创建多维数组

$arr = array(Array(10,11,12,13,14), Array(20,21,22,23), Array(30,31,32), Array(Array(40,41),黑马程序员济南中心 编著

Array(42,43)));

2、使用[]来创建多维数组

$arr[“name”] = “Mary”;$arr[“sex”] = “男”;$arr[“contact”][“tel”] = “11111111111”;$arr[“contact”][“qq”] = “11233321”;$arr[] = array(10,20,30);实例:用表格输出二维数组 $arr = array(Array(“10010”,”Mary”,”大专”,”传智专修学院”), Array(“10020”,”Kate”,”大专”,”传智专修学院”), Array(“10030”,”James”,”大专”,”传智专修学院”), Array(“10040”,”Kobe”,”大专”,”传智专修学院”),);$str = “”;$str.= “

” For($i = 0;$i”;For($j=0;$j”.$arr[$i][$j].””;

黑马程序员济南中心 编著

} $str.= “”;} $str.= “

”;Echo $str;数组操作函数 1.print_r()a)描述:打印变量信息

b)语法:print_r(mixed $expression)c)说明:如果给出的是string、interger或float,将打印变量值本身。如果给出的是array,将会按照一定格式显示键和元素

2.Count()a)描述:统计数组有效数据的个数

b)说明:计算数组中的单元数目或对象中的属性个数。c)语法:int count(mixed $var)d)参数:$mode是否统计多维数组中的个数 3.Unset()a)描述:删除变量或数组元素或者对象属性 b)语法:void unset(mixed $var)c)返回值:无

d)注意:如果删除变量的话,只是删除变量名称和到值之间的指向。如果删除数组元素的话,值会被删除,而下标还在。如果删除整个数组的话,而整个数组都不存在黑马程序员济南中心 编著

了。

实例:求一维数组中元素的平均值 $arr = array(1,2,3,4,5,6,7,8);$num = 0;$len = count($arr);For($i=0;$i<$len;++$i){ $sum += $arr[$i];} Echo “平均值为:”.$sum/$len;实例:求二维数组中元素的平均值 $arr = array(Array(10,11,12,13,14), Array(20,21,22,23), Array(30,31,32), Array(40,41), Array(50));$sum = 0;$len = 0;For($i = 0;$i

黑马程序员济南中心 编著

$len ++;} } Echo “平均值:”.round($sum/$len,2);实例:求一维数组中的最大值 $arr = array(9,2,3,45,5,7);$max = $arr[0];For($i=0;$i

If($max<$arr[$i]){

黑马程序员济南中心 编著

$max = $arr[$i];$max_index = $i;} //最小值

If($min>$arr[$i]){ $min = $arr[$i];$min_index = $i;} } //交换最大值和最小值的位置 $arr[$max_index] = $min;$arr[$min_index] = $max;数组遍历:foreach 语法结构:

Foreach($arr as [$key=>]$value){循环体代码} 语法结构说明:

$arr代表当前要遍历的数组名称 As是系统关键字

$key表示每一次取到元素的键名,可以省略 $value表示每一次取到元素的键值 如果数组指针指到数组的末端,则退出循环 实例:foreach遍历一维数组

黑马程序员济南中心 编著

$arr = array(“name” => “Mary”, “sex” => “男”, “age” => 24);Foreach($arr as $key=>$value){ Echo “$arr[$key]=$value
”;} 实例:foreach遍历二维数组 $arr = array(“a” =>array(“10010”,”Mary”,”男”,24), “b”=>array(“10020”,”Kate”,”女”,20), “c” => array(“10030”,”Kobe”,”男”,40));$str = “”;$str.=”

”;Foreach($arr as $arr2){ $str.=””;Foreach($arr2 as $value){ $str.=””;} $str.=””;

黑马程序员济南中心 编著

} $str.=”

$value
”;Echo $str;实例:foreach 中的$value引用传地址 $arr = array(1,2,3,4,5,6,7,8);Foreach($arr as &$value){ $value *=2;} Var_dump($arr);数组操作函数 1.each()a)描述:返回数组中当前的键/值对(数组元素)并将数组指针向前移动一步 b)语法:array each(array &$array)c)返回值:返回array数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回四个单元的数组。单元0和key包含有数组单元的键名,1和value包含有数据。

2.List()a)描述:把数组中的值(前几个值)赋给一些变量 b)语法:array list(mixed $varname)c)举例:list($name,$sex,$age)= array(“Kobe”,”男”,24,”高中”);i.说明:将数组中前三个元素的值,赋给list函数中的三个变量。

ii.数组中多余的值不需要

黑马程序员济南中心 编著

iii.要求数组必须是枚举数组,下标必须是从0开始的正整数 iv.下标必须是连续的,中间不能断档。

黑马程序员济南中心 编著

第四篇:黑马程序员_PHP_课程同步笔记day35:PDO介绍

PDO介绍

pdo是什么?

PDO: PHP 的 Data Object(php的数据对象)pdo到底是什么?

它相当于“别人”写的mysqldb工具类!比如:

$pdo = new pdo();

//这就是$pdo的一个对象!但pdo比我们自己写的mysqldb工具类复杂多了,功能也强多了。其原理如下:

其中,pdo的各种数据库“引擎”,我们可以在php.ini中进行“开关”控制: 如下:

黑马程序员济南中心 编著

重启apache。

使用pdo连接mysql数据库

DSN = “mysql:host=服务器地址/名称;port=端口号;dbname=数据库名”;Options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>’set names utf8’);$pdo = new pdo(DSN, “用户名”, “密码”, Options);

[PHP] 纯文本查看 复制代码 ? 01

04 //DSN = “mysql:host = 服务器地址/名05 称;port=端口号;dbname=数据库名”;06 //DSN是一种常见的“缩略语”,表示:Data

黑马程序员济南中心 编著

07 Source Name(数据源名称)08 //Options = 09 array(PDO::MYSQL_ATTR_INIT_COMMAN10 D=>'set names utf8');11 //其中PDO就是类,12 MYSQL_ATTR_INIT_COMMAND是该类中的13 一个常量

$dsn = “mysql:host=localhost;port=3306;dbname=php43;”;$opt = array(PDO::MYSQL_ATTR_INIT_COMMAND=>“set names utf8”);$pdo = new pdo($dsn,“root”,“root”,$opt);

var_dump($pdo);[align=left] 结果如下:

object(PDO)#1(0){}

使用pdo执行sql语句:

黑马程序员济南中心 编著

有2个方法,如下:

$result = $pdo-> query($sql);//可以执行任何sql语句,通常适用于执行select这种

如果执行select这种有数据返回的语句,则所得到的结果是“pdo结果集”

$result = $pdo-> exec($sql);

//只能执行没有返回数据的sql语句,比如增删改语句;

执行的结果返回true或false

销毁pdo数据对象(释放资源):

pdo技术范围中,会有两种对象数据结果:

pdo对象

pdo结果集对象

$pdo = null;$result->closecursor();

//$result 就是pdo数据集(pdo结果集)

pdo对象的其他方法

$pdo->lastInsertId():获取最后一次插入时的自增长的id值

$pdo->beginTransaction();$pdo->commit()$pdo->rollBack();$pdo->setAttribute(属性名,属性值);

黑马程序员济南中心 编著

最后一个举例:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

黑马程序员济南中心 编著

第五篇:黑马程序员_PHP_课程同步笔记day41:验证码模块讲解

【黑马程序员济南】PHP模块讲解之验证码部分

在日益庞大的网民的面前,如何能够合理的规避以防止服务器被恶意DoS攻击或者不法之徒利用机器程序自动贴牛皮癣广告?一条小小的验证码功能就可以阻挡大部分的问题,所以今天我们就来研究一下如何生成验证码。

要求:

码值:有4位,大写字母和数字组成

验证码图像:存在背景,在有限的图像中选择作为背景。文字居中显示,文字颜色有白色黑色 码值

[PHP] 纯文本查看 复制代码 ?

01

05 * 有4位,大写字母和数字组成 06 * 随机生成 07 */ 08

黑马程序员济南中心 编著

09 //列出所有的大写字母和数字作为一个集合 $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789';11 $chars_len = strlen($chars);//获取集合长度 12 //规定验证码值的长度 14 $code_len = 4;15 //初始化验证码值 16 $code = '';17 //随机选取4位字符 for($i = 0;$i<$code_len;$i++){ 19 //随机获取一个字符下标 $rand_index = mt_rand(0,$chars_len-1);21 //将获取到的下标从字符的集合中取出并追加到$code中 22 $code.= $chars[$rand_index];23 } 24 //$code就是我想获取到的4位的随机数 25 echo $code;存生成好的验证码我们是需要将其保存起来,用来验证用户输入的验证信息是否正确 而验证码只需要存在一个会话周期就可以了,所以就不需要存储到数据库中,我们将其存储于session中。

[PHP] 纯文本查看 复制代码 ?

黑马程序员济南中心 编著 2 3 //开启session session_start();$_SESSION['code'] = $code;验证码图像

简单字符串(字母数字)写在画布上的函数: imageString(画布,字体,位置x,位置y,字符串内容,颜色);字体:imagestring函数,使用的内置字体。由1-5表示。位置:由字符串左上角的坐标来确定

颜色:也是需要预先分配好的。imagecolorallocate()[PHP] 纯文本查看 复制代码 ?

01

04 * $image代表要将生成好的验证码写入到的画布 05 * $font 使用内置的字体,有1,2,3,4,5这5种型号 06 * $x,$y代表验证码在画布中的坐标位置 07 * $s 代表生成好的字符串 08 * $col 代表字体所用的颜色 09 */

黑马程序员济南中心 编著 //取一张图片作为背景 11 $bg_file = '/1.jpg';12 //根据该图片,创建画布 $image = imagecreatefromjpeg($bg_file);14 //分配字体颜色,随机分配,黑色或者白色 15 if(mt_rand(0,1)==1){ 16 //如果是1就是设置字体颜色为黑色 $str_color = imagecolorallocate($image,0,0,0);18 }else{ 19 //如果不是1就设置字体颜色为白色 $str_color = imagecolorallocate($image,255,0xff,255);21 } 22 //内置5号字体 24 $font = 5;25 //位置 26 $str_x = 50;27 $str_y = 5;28 //生成带验证码的图片 imagestring($image,$font,$str_x,$str_y,$code,$str_color);

黑马程序员济南中心 编著

一定要输出图片和销毁画布: [PHP] 纯文本查看 复制代码 ?

这样我们就生成了一个验证码图片,不知道大家对今天的知识了解程度如何啊?

黑马程序员济南中心 编著

下载黑马程序员_PHP_课程同步笔记day21:表定义语句word格式文档
下载黑马程序员_PHP_课程同步笔记day21:表定义语句.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐