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

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

第一篇:黑马程序员_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_课程同步笔记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]

黑马程序员济南中心 编著

第三篇:黑马程序员_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_课程同步笔记day05:CSS介绍(二)

【黑马程序员】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;按着顺时针方向。(上右下左)注释:不允许使用负值。代码:

new document

抓住眼前的人和事,不要再去为那遥远的虚无缥缈耗费心思,做你该做的事,不要为别人,与自己没关系的事,费劲自己的心思,不要活在过去里,无论你有任何的伤痛,回忆只会带给自己无穷无尽的苦恼,走出痛苦,活在当下,人生路很长,我要走好。

第五篇:黑马程序员_PHP_课程同步笔记day13:PHP基础介绍

【黑马程序员】PHP课程同步笔记day13:PHP基础介绍

1.语言基础

PHP文件的访问,必须要经过虚拟空间(域名),才能访问PHP文件,不能本地直接访问 Php文件的扩展名:.php Php代码的标记: Php区分大小写。但是函数名和关键字不区分大小写。每一条语句,必须以英文下的分号(;)结束。2.语句结束符

每一条PHP语句,都要以英文状态下的分号(;)结束。

PHP中的语法结构(if、switch、for、while、do while、function、foreach等)不能加分号(;)结尾。

如果PHP代码中,只有一条语句的话,可以省略分号;如果是多条PHP语句,最后一条语句可以省略分号。3.注释

HTML注释: CSS注释:/* */

黑马程序员济南中心 编著

JS注释://或/* */ PHP的单行注释://或# PHP的多行注释:/* */ 注意:

PHP多行注释不能嵌套

PHP的注释在浏览器端同样看不见

PHP变量

1.变量的概念

变量是临时存储数据的容器 变量是在内存中存在和运行的

变量是一个代号。用变量来代替一个数据 2.变量命名规则

变量名称包含的字符有:a-z、A-Z、0-

9、_ 变量名只能以字母或下划线开头 变量名不能以数字开头

PHP的变量前,必须加”$”符号。”$”不是变量名称的一部分。”$”之后为变量名

PHP变量是区分大小写的

PHP关键字,也可以作为变量名称。如$if、$while等 PHP长文件名如何表示

“驼峰式命名”:$getUserName “下划线式命名”:$get_user_name

黑马程序员济南中心 编著

PHP变量操作

1.定义变量

PHP的变量不用提前定义,用的时候直接赋值即可.$name = “abc”;JS的变量在使用时要提前声明。Var name=”abc”;2.变量赋值

使用”=”赋值号,给变量进行赋值(往容器中装东西)。

“=”含义:将”=”右边的运算结果,赋值给”=”左边的变量名称,左边不能是一个运算表达式。

举例:$a = $b + 10*24-26 3.读取变量值

$name = “Mary”;Echo “我的名字叫$name”;4.判断变量是否存在isset()如果一个变量的值不等于NULL,就返回TRUE,反之返回FALSE 5.判断变量是否为空empty()对于empty来说,0、””、”0”、0.0、NULL、FALSE、array()认为是空,返回TRUE,反之就返回FALSE.6.删除变量unset()Unset()函数

语法:void unset(mixed $var[,mixed$....])提示:变量被删除后,变量的返回值为NULL。

黑马程序员济南中心 编著

变量的值传递和引用传递

1、值传递

将变量的值”复制”一份,传给另一个变量。

这两个变量之间没有任何联系,修改其中一个,另一个变量的值不会改变。在PHP中,哪些数据类型,默认是”值传递”。包括:字符型、整形、浮点型、布尔型、数组、NULL。

在JS中,默认是”值传递”包括:字符型、数值型、布尔型、undefined、NULL

黑马程序员济南中心 编著

2.引用传地址

将一个变量的数据地址,”复制”一份,传给另一个变量。这两个变量,指向同一份数据。

在PHP中,默认传地址的数据类型有:对象、资源。在JS中,默认传地址的数据类型有:数组、对象、函数。

但是在PHP 中,也可以让所有其他类似数据,都变成”引用传地址”,只需在引用的变量名前加”&”符号.黑马程序员济南中心 编著

可变变量

一个变量的名称,可以用另一个变量的值来充当。如$$name;

实例:批量获取表单提交值 代码:

if(isset($_POST['ac'])&&$_POST['ac'] == “login”){

黑马程序员济南中心 编著

foreach($_POST as $key=>$value){

/*

$$key = $value

$username = $key;

$password = $value

*/

$$key = $value;//可变变量

}

$sql = “INSERT INTO 007_news(username,password)VALUES('$username','$password')”;

echo $sql.“


”;} ?>

用户名:

密码:

PHP超全局变量数组

1.PHP中的超全局变量数组

$_GET:获取地址栏中传递的参数。

黑马程序员济南中心 编著

$_POST:获取表单method=”post”提交的数据

$_REQUEST:包含$_GET、$_POST、$_COOKIE上数组中的数据 $_SERVER:获取apache服务器或执行环境的相关信息 $GLOBALS:获取全局变量的各个数据 $_SESSION:跟踪用户 $_COOKIE:跟踪用户 $_FILES:上传文件 2.超全局变量$_POST的使用

描述:主要用来获取表单method=”post”提交的数据。举例:$username = $_POST[‘username’];3.实例:简单PHP计算器 代码实现:

if(isset($_POST['ac'])&&$_POST['ac'] == ”login“){

// 获取表单提交值

$value1 = $_POST['value1'];

$value2 = $_POST['value2'];

$operator = $_POST['operator'];

//计算结果

switch($operator){

黑马程序员济南中心 编著

case 1:

$result = $value1 + $value2;

break;

case 2:

$result = $value1-$value2;

break;

case 3:

$result = $value1 * $value2;

break;

case 4:

$result = $value1 / $value2;

break;

case 5:

$result = $value1 % $value2;

} }else{

//网页首页下载完成时,变量初始化

$value1 = ”“;

$value2 = ”“;

$operator =1;

$result = ”“;}

黑马程序员济南中心 编著

?>

“ />

“ />

">

黑马程序员济南中心 编著

超全局变量$_GET的使用

$_GET可以获取地址栏中参数的数组

发送GET数据的方法总结

1.通过表单method=”get”发送

2.通过发送GET数据

黑马程序员济南中心 编著

3.通过JS的location对象也可以发送GET数据

4.使用PHP的header()函数传递参数

黑马程序员济南中心 编著

黑马程序员济南中心 编著

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

文档为doc格式


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

相关范文推荐