第一篇:黑马程序员_PHP_课程同步笔记day20:mysql数据库介绍
【黑马程序员】PHP课程同步笔记day20:mysql数据库介
绍
数据库(Database)按照数据结构来组织、存储和管理数据在建立在计算机存储设备上的仓库
数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。逻辑结构如下:
黑马程序员济南中心 编著
数据库的一些基本术语:
数据 data 数据库 database 数据库管理系统 dbms:Database Management System 表(数据表):table 字段field ,列 column 行row ,记录 record 数据库操作流程:
黑马程序员济南中心 编著
Mysql的基本操作及基本语法规定 启动/停止mysql数据库服务
只有服务启动,才能正常进行mysql的各种操作(执行命令)有两种方式对数据库进行启动或停止: 方式1: 命令行模式:
启动:net start mysql 停止:net stop mysql 方式2:
服务模式:控制面板>管理工具>服务>msyql>启动/停止 登陆/退出mysql数据库系统
登陆:mysql-h服务器地址
-u 登陆名
-P端口号-p密码
或者: mysql--host=服务器地址
--user=用户名
--port =端口
--password 退出:quit;或exit;注意:
1.登陆之前,属于”执行window命令”,一条命令的执行无需分号结束,回车即可。
黑马程序员济南中心 编著
2.登陆之后,执行的就是”mysql命令”(mysql 语句),一条命令需要分号结束,并回车执行。
3.登陆数据库系统后,一定请记得使用”set names 编码名;”来设定当前连接数据库的”环境编码名”--这样才能避免后续代码可能出现的某种乱码问题!数据的备份与恢复 基本概念:
备份:将一个”活”的数据库数据,转换为一个包含其中所有数据但并不能直接使用 的数据库(“死的”),即一个文件。
恢复:将一个之前备份出来的死的数据库数据(即文件),恢复到活的可以使用数据库数据。
为什么要备份恢复:
1.数据迁移:从一台数据库服务器上的数据,迁移到另一个数据库服务器上。2.数据安全考虑:防止数据库丢失,崩溃,被攻击。。具体做法: 备份: 形式:
Mysqldump-h服务器地址
-u登录名
-p 数据库名 >目标文件的完整路径 注意 :
这个不是mysql的语句,而且在登陆mysql之前的命令,即属于window命令。恢复: 形式:
Mysql-h服务器地址-u登录名
-p 目标数据库名 < 原备份文件的完整路径
黑马程序员济南中心 编著
Mysql的基本语法规定 注释:
单行注释:#注释内容
单行注释:--注释内容(注意,两个”--”之间有一个空格)多行注释:/*注释内容*/ 语句行:
一条语句也称为一条命令,通常用一个分号(;)结束;也可以通过”delimiter新结束符”命令来人为设定新的语句结束符。
语句的执行是以一条语句为单位进行,一次执行一条语句。大小写问题:
Mysql本身是不区分大小写的语言。
Mysql中的各种系统关键字和命令名本身是不区分大小写的 命名规则:
可以自己命名的名字,称为标识符,包括:数据库名,表名,字段名,视图名,函数名,过程名,变量名,用户名等等。
可以命名标识符的字符比常规的语言多,但特别建议只用:字母数字和下划线,并不用数字开头。数据库定义语句: 创建数据库: 形式:
Create database 数据库名
[charset 数据编码名] [collate 排序规则名];说明:
黑马程序员济南中心 编著
1.数据库编码名,是用来规定当前数据库内部存储的文本数据所使用的字符编码;常用的有:utf8,gbk,gb2312 2.编码名是一些固定的名字,可以使用show charset来显示;修改数据库:
修改只能修改数据库的”属性”;Alter database 数据库名[charset 新的数据编码名] 删除数据库:
Drop database [if exists] 数据库名;If exists:表示如果存在就删除,否则啥也不做。使用(进入)某数据库:
Use 数据库名;显示所有数据库名:
Show databases;
黑马程序员济南中心 编著
第二篇:黑马程序员_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.= “
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 黑马程序员济南中心 编著 } $str.=” 2.List()a)描述:把数组中的值(前几个值)赋给一些变量 b)语法:array list(mixed $varname)c)举例:list($name,$sex,$age)= array(“Kobe”,”男”,24,”高中”);i.说明:将数组中前三个元素的值,赋给list函数中的三个变量。 ii.数组中多余的值不需要 黑马程序员济南中心 编著 iii.要求数组必须是枚举数组,下标必须是从0开始的正整数 iv.下标必须是连续的,中间不能断档。 黑马程序员济南中心 编著 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课程同步笔记day05:CSS介绍(二)CSS内边距属性:padding填充 Padding:一个数字,指的是四个方向是一样的(上右下左) Padding的四个属性: Padding-top(上内边距),padding-right(右内边距),padding-bottom(下内边距),padding-left(左内边距)Padding:当padding后有两个数字时即Padding:10px 20px;指的是上下内边距为10px,左右内边距为20px 注意:两个数字之间有空格。 Padding:当padding后有三个数字时即Padding:10px 20px 30px;指的是上边距10px,下边距的填充为30px,左右边距为20px;Padding:当padding后有四个数字时即padding:10px 20px 30px 40px;按着顺时针方向。(上右下左)注释:不允许使用负值。代码:
”;} 实例: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.=”
”;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包含有数据。”;Foreach($arr2 as $value){ $str.=” ”;$value ”;} $str.=”第三篇:黑马程序员_PHP_课程同步笔记day35:PDO介绍
第四篇:黑马程序员_PHP_课程同步笔记day05:CSS介绍(二)
黑马程序员济南中心 编著
div{border:1px solid red;width:300px;padding:20px;}
第五篇:黑马程序员_PHP_课程同步笔记day36:PDO介绍(二)
【黑马程序员济南】PDO介绍(二)
异常模式
使用一种特定的异常处理语法,则一发生错误,就会自动处理,不发生错误,就正常执行。语法形式如下:
try {
//这里执行pdo的一些操作,比如:
$result1 = $pdo->query(“select * form user_list;”);//该语句有错误!
上一行“可能”出错,则如果出错,就不会再执行try范围中的后续语句;而是进入catch语句中
而没有出错,就会继续执行try中的后续语句;
。。这里可以继续处理pdo结果集对象$result1;
}
catch(PDOEXCEPTION $e){
//这里,$e是一个“对象”——就是“错误对象”,或所谓的“异常对象”
其中$e对象有一些属性或方法可以获取有关错误的信息,比如:
echo “错误代号:”.$e->GetCode();
echo ‘错误信息:”.$e->GetMessage()
}
黑马程序员济南中心 编著
使用异常模式,必须先将pdo对象“设置为异常模式”,如下:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);[PHP] 纯文本查看 复制代码 ? 01
04 //连接PDO
05 $dsn = “mysql:host=localhost;port=3306;dbname=haha”;06 $opt = array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set names 07 utf8');08 $pdo = new pdo($dsn,“root”,“123”,$opt);09 //演示异常模式: $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTI12 ON);13 14 try{ 15 $result = $pdo->query(“select * from no_this_table;”);//没有这个16 表,该语句有错误!var_dump($result);//不会执行这步。18 }
黑马程序员济南中心 编著 catch(PDOEXCEPTION $e){ echo “错误代号:”.$e->GetCode();echo “错误信息:”.$e->GetMessage();} pdo的结果集对象
$stmt = $pdo->query(“select......”);//这是获得结果集
$stmt->rowCount():结果的行数
$stmt->columnCount():结果的列数
$stmt->fetch([返回类型]):获取结果集的一行,为一个一维数组
//其中返回类型常用的有:
PDO::FETCH_ASSOC:表示关联数组
PDO::FETCH_NUM:表示索引数组
PDO::FETCH_BOTH:表示前二者皆有,这是默认值
PDO::FETCH_OBJ:表示对象
$stmt->fetchAll([返回类型]):获取结果集的所有行,为一个二维数组
$stmt->fetchColumn([$i]):获取一行的某个列,默认为第一列的值
pdo的预处理语句
基本理解:
就是一条sql语句中,包含了“未定参数数据”,但却预先对该sql语句进行“预处理”,以提升速度,提高安全性。
比如:
黑马程序员济南中心 编著
语法一:$sql1 = “select * from tab1 where f1 = ? and f2 >?”;
//占位符形式
语法二:$sql2 = “select * from tab1 where f1 = :val1 and f2 >:val2”;
//命名参数形式
我们可以先“预处理”:
$result1 = $pdo->prepare($sql1);
$result2 = $pdo->prepare($sql2);
然后,可以对其中的“未定参数数据”进行赋值了,比如:
$result1->bindValue(1, 值1);
//这种形式只能用数字代号表示第几个,顺序从1开始
$result1->bindValue(2, 值2);
//还要注意:字符串或数字就该怎么写就怎么写
或:
$result2-> bindValue(“:val1”, 值1);//这里只能用该带冒号的名字来表示
$result2-> bindValue(“:val2”, 值2);
最后,就可以执行了:得到该得到的结果集!
$result1->execute();
$result2->execute();举例:
[PHP] 纯文本查看 复制代码 ? 01
黑马程序员济南中心 编著
02 /*黑马程序员济南中心出品*/ 03
04 //连接PDO 05 $dsn = 06 “mysql:host=localhost;port=3306;dbna07 me=haha”;08 $opt = 09 array(PDO::MYSQL_ATTR_INIT_COMMA10 ND=>'set names utf8');11 $pdo = new pdo($dsn,“root”,“123”,$opt);13 //语法一: $sql1 = “select * from user_list where 16 user_name= ? and age>?”;//占位符形式 17 //语法二: $sql2 = “select * from user_list where 19 user_id >:n and age < :age”;//命名参数形20 式 21 $re1 = $pdo->prepare($sql1);//进行23 预处理
黑马程序员济南中心 编著 $re2 = $pdo->prepare($sql2);//进行25 预处理 26
$re1->bindValue(1,“user3”);$re1->bindValue(2,30);$re1->execute();
$re1->bindValue(“:n”,10);$re1->bindValue(“:age”,60);$re1->execute();
[align=left]
黑马程序员济南中心 编著
文档为doc格式
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
黑马程序员_PHP_课程同步笔记day13:PHP基础介绍
【黑马程序员】PHP课程同步笔记day13:PHP基础介绍 1.语言基础 PHP文件的访问,必须要经过虚拟空间(域名),才能访问PHP文件,不能本地直接访问 Php文件的扩展名:.php Php代码的标记......
黑马程序员_PHP_课程同步笔记day07:JS介绍(二)
【黑马程序员】PHP课程同步笔记day07:JS介绍(二) 流程控制 If语句: 格式:if(条件){//语句块} 如果条件满足true,才执行大括号里面的代码,如果条件不满足,则不执行大括号里面的代码......
黑马程序员_PHP_课程同步笔记day18:PHP函数
【黑马程序员】PHP课程同步笔记day18:PHP函数 PHP函数 1.概念 将一段常用的功能代码,进行封装,然后起个名字,叫”函数” 使用函数,可以减少我们的工作量。对于后期的项目维护,十分......
黑马程序员_PHP_课程同步笔记day41:验证码模块讲解
【黑马程序员济南】PHP模块讲解之验证码部分 在日益庞大的网民的面前,如何能够合理的规避以防止服务器被恶意DoS攻击或者不法之徒利用机器程序自动贴牛皮癣广告?一条小小的验......
黑马程序员_PHP_课程同步笔记day10:JS小游戏
【黑马程序员】PHP课程同步笔记day10:JS小游戏 通过前几周的学习我们对JS有一定的了解,今天的内容就是将之前的学习的内容在小游戏中应用,希望大家能够在小游戏中进一步提升自......
黑马程序员_PHP_课程同步笔记day11:DOM介绍(五篇范例)
【济南中心】PHP课程同步笔记day11:DOM介绍 DOM(文本对象模型(Document Object Model)) W3C组织推荐的处理可扩展标志语言的标准编程接口。W3C的DOM,可以使程序或脚本(JS或AS......
黑马程序员_PHP_课程同步笔记day21:表定义语句
【黑马程序员】PHP课程同步笔记day21:表定义语句 表定义语句 创建表: 基本形式: Create table [if not exists] 表名(列定义列表,[索引或约束列表])[表选项列表]; 说明: 1.上述......
黑马程序员_PHP_课程同步笔记day30:PHP类中关键字
【黑马程序员济南】PHP课程同步笔记day30:PHP类中关键字 今天我来为大家讲解一下PHP类中的一些关键字: parent和self关键字 parent: 用在一个类的一个方法中; 代表这个类的“......