H5第四阶段—PHP&MySQL

目录

PHP简介及基本语法... 3

PHP运行环境配置... 3

PHP的运行原理... 3

两种PHP运行方式... 4

变量的定义... 4

变量的传值... 4

变量数据类型... 5

变量检测... 7

变量类型转换... 7

常量... 8

代码的注释... 8

PHP输出方式... 8

单引号和双引号... 8

SESSION和COOKIE. 9

表单处理... 9

流程控制... 10

函数... 10

文件读写操作... 10

文件上传... 11

面向对象编程... 12

数据库操作:数据库及表的创建... 15

数据库操作:PHP链接数据库并操作数据... 16

数据库常用SQL语句... 16

数据修改业务逻辑... 19

数据库基础概念... 19

MySQL数据库命令行操作... 19

修改MySQL配置文件my.ini: 22

常见错误调试方法... 22

MVC的模式设计程序... 23

后续学习:... 23

 

 

 

 

 

 

 

 

 

 

 

 

 

笔记内容

PHP简介及基本语法

1)      PHP,即“PHP: Hypertext Preprocessor”,中文名 “超文本预处理器” ,是一种被广泛应用的开源脚本语言;

2)      后缀必须是*.php;

3)      PHP的语句以分号(;)结束的;

4)      可嵌入到HTML中,非常适用于Web领域开发;

5)      第一个PHP:

<?php

         header('Content-type:text/html;charset="UTF-8"');

         echo '我的第一个PHP';

?>

 

6)      通过虚拟路径访问PHP文件;

PHP运行环境配置

       根据个人环境选择不同版本,参考安装文档进行安装配置;

PHP的运行原理

 

最终解析成:

 

访问php页面是看不到PHP代码的;

两种PHP运行方式

1)  通过虚拟路径访问,也就是URL地址:单线程;

2)  CLI运行方式:真正的多线程

 

变量的定义

1)  以$开头,$后面不能直接跟数字,后面跟字母、数字、下划线;

2)  变量名称区分大小写,PHP关键词不区分大小写;

变量的传值

1)  赋值传值:

$h = 120;

       $q = $h;     //将$h的值拷贝给$q

       $h = 135;

       echo $h;  //输出135

 

2)  引用传值:

$h = 155;

       $q = &$h; //引用传值,表示$h的地址传给$q

       $q = 195;

       echo $h; //输出195

3)  可变变量

$a1 = array('username' => '邓海涛', 'passwd'=>'123456', 'tel'=>'15982369', 'email'=>'dxp@163.com');

         foreach ($a1 as $key122 => $value134) {

                   ${$key122} = $value134;

         }

         echo $email;

         echo $tel;

变量数据类型

1)  整数:

a)  整型值可以使用十进制,十六进制,八进制或二进制表示;

b) 前面加上0b表示二进制;

c)  前面加上0表示八进制;

d) 前面加上0x表示十六进制;

e)  前面加上表示负数;

2)  浮点型:

a)  浮点型可以用来存储数字,也可以用来保存小数;

b) 提供了比整数大的多的精度;

3)  布尔型:

a)  布尔值有两个:true、false,不区分大小写;

b) 当做为判断条件或转成Boolean值时,以下值是false:

            布尔值false、整型值0(零)、浮点型值0.0;

            空字符串“”和字符串“0”、没有元素的数组;

            没有任何成员变量的对象;特殊类型NULL;

4)  数组:

数组分索引数组和关联数组,用array定义一个数组,数组的元素可以是任意类型的值;如果数组的元素还是数组,那么该变量就是多维数组;

         //PHP数组的定义

         $array1 = array();

         // $array1 = []; //用于7.0版本以后

    

//索引数组

$student = array('梁刚','郑鸿斌','易航','谭俊');//索引从0开始

         $num = array(1, 2, 3, 4, 5);

         //计算数组的元素个数:count();

         $an = count($student);

         echo $an;

 

         //关联数组

         $student1 = array('name'=>'赵梓茗', 'age'=>18, 'height'=>190.02);

 

         //多维数组

         $students = array(

                            0=>array('name'=>array('realname'=>'邓海涛', 'age'=>18, 'height'=>190),

                            1=>array('name'=>'邓海涛',  'age'=>18, 'height'=>190),

                            2=>array('name'=>'邓海涛',  'age'=>18, 'height'=>190),

                   );

         var_dump($students);

5)  资源类型:数据库操作,文件操作

6)  对象类型:后面讲

7)  NULL:NULL表示一个变量没值; NULL类型唯一值就是 NULL;

变量检测

1) is_array:是否是数组;

2) is_bool :是否是布尔型;

3) is_float :是否是浮点型;

4) is_int :是否是整数;

5) is_null :是否为 NULL;

6) is_numeric :是否为数字或数字字符串;

7) is_object :是否是一个对象;

8) is_resource :是否为资源类型;

9) is_string :是否是字符串;

10) Isset($a):检查变量是否设置;empty($a):检查变量的值是否为空;

变量类型转换

1) 转为布尔型:(bool)或(boolean);

2) 转为字符型:(string)或strval()函数;

3) 转为整型:(int)或intval()函数;

4) 转为浮点数:(float)或(double);

5) 转为数组:(array);

6) 转为对象:(object);

常量

1)  定义:define(name, value[, flag ]);flag:可选,设置常量名称是否大小写敏感;

2)  检查是否定义:defined ( string name ),参数name是常量名,如定义返回true;

代码的注释

1)      //:单行注释;

2)      /*里面是注水内容,多行*/;

3)      #:单行注释;

PHP输出方式

1)  Echo:输出字符串;

2)  print_r() :打印变量的易于理解的信息;

3)  var_dump():打印易于理解的完整数据信息及结构,包括字符串长度;

4)  exit():打印并停止执行PHP脚本;

5)  die():同exit;

单引号和双引号

1)  双引号里面的变量会解析,单引号不会解析;

2)  双引号里面的变量如果还要内容,最好用{}括起来;

 

3)  推荐使用单引号:运行效率稍微高点;

4)  如果输出单引号或者双引号,需要转义;

SESSION和COOKIE

1) SESSION:为每个访问者创建一个唯一 id ,并基于这个ID 来存储信息,Session_id()返回当前会话id;

2) 通过session_start() 启动session会话(必须位于 <html> 标签之前);

3) $_SESSION[‘username’] = ’用户账号’; 用于设置session值;

4) $_SESSION[‘username’] 用于获取session值;

5) unset() 用于释放指定的session变量;

6) session_destroy() 将重置所有session数据;

7) cookie 信息存储在用户电脑中,每当用户访问网页时同时会发送cookie ;

setcookie(name, value, expire); 用户设置cookie内容;

$_COOKIE[“user”]用于获取cookie的值;

setcookie(“user”, “”, time()-3600);用于删除cookie内容 ;

表单处理

1)  Action指定后台处理的页面,method指定数据传输方式:

 

2)  PHP如何接收POST过来的数据:

获取指定输入框的数据:

全部数据存放在一个数据里面的:

3)  PHP接收GET过来的数据方式:$_GET[‘username’];

流程控制

数组一般使用foreach遍历:

$arrar1 = array(1, 56, -89, 120, 568, 1028, 56, 3);

$max = $arrar1[0];

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

         if($max < $value){

                   $max = $value;

         }

}

echo $max;

函数

1)  函数是可重复使用的代码块,使程序结构清晰,易于维护。

2)  函数内部使用外部的变量使用global;

3)  函数分为自定义函数和内置函数;

function fn(参数1,参数2,参数3…) {

执行的代码;

Return 返回的数据,可以是数组、对象、字符串等

}

文件读写操作

1)  打开文件:$fh = fopen($filename, “打开模式”);打开模式描述如下表:

 

2)  读取打开的文件指定长度的内容:fread($fh, filesize($filename));

3)  读取文件单行内容:Fgets($fh);

一行一行读取文件所有内容:

while(!feof($fh)){

     $str1 = fgets($fh);

}

4)  文件写入:

fwrite($fh, “访客1\tip:112.105.213.20\t时间:2017-03-06 16:42:21 " . PHP_EOL);

5)  关闭打开的文件:fclose($fh);

6)  一次性获取文件内容和写入文件的方式:

//读取远程文件内容

         $str = file_get_contents('http://localhost/indexmk/preview.do');

         var_dump($str);

         //写入文件

         file_put_contents('a.html', $str);

文件上传

1)  表单method必需为POST;

2)  指定表单enctype属性值为”multipart/form-data” :

enctype:encodetype,即编码类型;

multipart/form-data:表单数据由多部分构成,如文本、二进制数据文件等;

3)  指定input标签的type为file:

<input type=“file” name=“uploadfile” id=“uploadfile” />;

4)  使用$_FILES[‘uploadfile’]获取上传文件的相关信息;

5)  move_uploaded_file() :将上传的文件从临时空间移动到你想保存的目录:

move_uploaded_file($_FILES["uploadfile"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);

面向对象编程

1)      面向对象编程简称OOP( Object-oriented programming );

2)      类是具有相同属性和服务的一组对象的集合;

3)      对象是类的实例;

4)      如何定义一个类:

         class Person

         {

                   //类的属性

                   public $name;

                   //构造函数,对类和属性进行初始化

                   function __construct($name1, $age1){

                            $this->name   = $name1;

                   }                

         }

5)      实例化一个对象

$person1 = new Person('鲁老师', 170);

//调用对象的属性

echo  $person1->name;

6)      成员变量

类中的变量,也称为属性。成员变量用来保存信息数据,或与成员方法进行交互来实现某项功能。

 定义成员变量的格式为:关键字 成员变量名。

 访问成员变量和访问成员方法是一样的。只要把成员方法换成成员变量即可,格式为:

 对象名 -> 成员变量

7)      成员方法

类中的函数被称为成员方法。

函数和成员方法唯一的区别就是,函数实现的是某个独立的功能,而成员方法是实现类中的一个行为,是类的一部分。

 class Student{

    //学生的名字

    var $name;

    function setName($name){

     //把局部变量给当前对象的全局变量赋值

     $this->name = $name;

    }

    function getName(){

     //返回当前对象全局变量$name

     return $this->name;

    }

   }

8)      PHP 构造函数

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值;

         function __construct( $name, $age )

         {

                   $this->name = $name;

                   $this->age= $age;

         }

9)      析构函数

析构方法的作用和构造方法正好相反,对象生命周期结束时调用;

         function __destruct( $name, $age )

         {

                   echo $this->name;

                   echo $this->age;

         }

10)    类的继承

PHP 使用关键字 extends 来继承一个类,PHP 不支持多继承

          class ChildClass extends ParentClass {

                   // 代码部分

         }

11)    访问控制

–     public(公共成员)

可以公开的、没有必要隐藏的数据信息。可以在程序中的任何位置(类内、类外)被其他的类和对象调用。子类可以继承和使用父类中所有的公共成员;

–     private(私有成员)

被private关键字修饰的变量和方法,只能在所属类的内部被调用和修改,不可以在类外被访问。在子类中也不可以;

–     protected(保护成员)

被protected修饰的类成员,可以在本类和子类中被调用,其他地方则不可以被调用;

12)    static: 声明类属性或方法为 static(静态),可以不实例化类而直接访问;

13)    Final 关键字

a)  如果父类中的方法被声明为 final,则子类无法覆盖该方法;

b)  如果一个类被声明为 final,则不能被继承;

14)    调用父类构造方法: parent::__construct();

15)    自动加载类 __autoload()函数:

function __autoload($classname) {

    require_once $classname . '.php';

}

// MyClass1类不存在时,自动调用__autoload()函数,传入参数”MyClass1”

$obj = new MyClass1();

数据库操作:数据库及表的创建

1)  到phpmyadmin管理数据库,访问:http://localhost/phpmyadmin/

 

输入账号root,密码默认为空,不输入

2)  创建需要的数据库:

 

3)  数据库创建好后,进入数据库,创建存储数据的表:

 

数据库操作:PHP链接数据库并操作数据

1)  建立数据库连接:

 

2)  设置数据库字符编码,防止乱码:

 

3)  执行SQL语句:

 

4)  使用完成后关闭数据库连接:

 

数据库常用SQL语句

1)  添加数据:

 

2)  查询数据:

 

3)  删除数据:

 

4)  更新数据:

 

5)  查询排序使用ORDER BY:

 

UTF8编码下的中文排序处理:

 

6)  多表查询:左连接LEFT JOIN,右连接RIGHT JOIN,内连接INNER JOIN

班级表 和 学生表:

   

LEFT JOIN:

查询结果:

描述:所有students(左边的表)信息,class(右侧表)的值可以为NULL;

RIGHT JOIN

查询结果:

描述:所有class(右侧表)信息,students(左边的表)的值可以为NULL;

INNER JOIN:

查询结果:

描述:class 和 student 的值都不能为NULL;

7)  WHERE更多判断条件:

 

数据修改业务逻辑

1)  首先获取数据原始信息,展示在页面上;

2)  把对应的input输入框的value值设置为数据库获取到的原始信息;

3)  修改信息需要传递而不需要展示给用户的,如主键id,使用type为hidden的input来传递;

4)  整个需要修改的数据需要放在一个表单中,包括hidden值;

5)  修改完成后提交给PHP,PHP根据获取的数据设置对应字段的新值及判断条件的值,执行UPDATE语句;

数据库基础概念

1)  数据库服务器:安装了数据库管理系统软件的计算机叫数据库服务器;

2)  数据库管理系统:简称DBMS(Database Management System),是用来管理数据库的软件;

3)  数据库:数据库(Database)是用来存储和管理数据的仓库;

4)  数据表:数据库中存放数据的地方,一个数据库中可包含若干个数据表;

5)  记录:表中的行叫记录,通常用它所在的行数(id值)表示这是第几条记录;

6)  字段:一条记录由多列构成,每个列称为字段;

7)  数据:存放在表行列交叉处的值就叫数据;

MySQL数据库命令行操作

1)  为了操作方便先修改环境变量:

 

2)  登录到数据库:mysql –h主机名 –u用户名 –p 回车,然后输入密码;

 

3)  退出MySQL:exit或quit

 

4)  在MySQL客户端,使用set修改密码:

set  password = password(‘新密码’);

5)  创建数据库:

create database [if not exists] dbname [charset 字符集]

通常使用的字符编码是utf8,我们可以通过修改配置文件来设置默认的字符编码,这样在创建数据库和表的时候就可以不用去选择utf8 的编码;

 

6)   使用指定的数据库:

use  databasename;

7)  显示数据库中的表:

show  tables;

8)  显示所有数据库:

show  databases;

9)  删除指定的数据库:

drop  databse  dbname;

10)      数据库信息存在data目录下:

 

11)      表信息由三部分组成:

 

修改MySQL配置文件my.ini:

                    

 

常见错误调试方法

 

MVC的模式设计程序

 

后续学习:

  1. 完善项目;
  2. 看PHP手册;
  3. 看笔记;
posted on 2017-08-25 19:02  YC小杨  阅读(195)  评论(0编辑  收藏  举报