代码改变世界

PHP和MySQL

2013-06-22 10:24  臭小子1983  阅读(375)  评论(0编辑  收藏  举报

第一章  PHP快速入门

 一、什么是PHP

  PHP是一种服务器端脚本语言,在一个HTML页面中可以嵌入php代码,这些代码在每次页面被访问时执行,PHP代码将在服务器中被解释生

 

二、什么是MySQL

  MySQL是一个快速而又健壮的关系数据库管理系统,一个数据库将允许你高效地存储、搜索、排序和检索数据,

  MySQL服务器控制对数据的访问,而确保多个用户可以并发使用,

 

三、PHP标记

  PHP代码是以"<? php"开始,"?>"为结束,可以告诉web服务器php代码的开始和结束,可以隔离php代码和HTML代码.

  四种标记风格,推荐使用第一种

  1、xml风格

    <?php echo '<p>order process</p>'; ?>:服务器管理员不能禁用这种标记。

  2、简短风格

    <? echo '<p>order process</p>'; ?>:

  3、SCRIPT风格

    <script language='php'>echo '<p></p>';</script>

  4、asp风格

    <% echo '<p></p>'; %>

 

四、注释

  /* .... */

 

五、添加动态的内容

  <?php

    echo "<p>order processed at";

    echo date('H:i, JS F Y');

    echo "</p>";

  ?>

  可以使用连接符"。"将其写在一行中.

  <?php

    echo "<p>order processed".date("H:i JS F Y")."</p>";

  ?>

 

六、访问表单变量

  php可以用变量的形式访问表单域,其中变量名必须与表单域的名称一致,3种方法来访问

  php的变量声明:$名称,$tireqty

  $_POST['表单name']

  $_GET['表单name']

 

七、字符串的链接

  使用" . "来链接字符

  echo $tireqty. "tires<br>";

 

八、PHP的数据类型

  1、int:整数  2、float:浮点  3、string:字符串  4、boolean:布尔  5、array:数组  6、object:对象

  7、NULL:空  8、resource:资源(存储如图片,文件)

 

九、类型的转换

  $totalqty = 0;

  $totalmount = (float)$totalqty;  // 将整型转换成浮动类型

 

十、变量、常量

  $trieqty:一个变量的声明,$+name    // 一般系统定义的变量名以下划线开头如$_POST

      可变变量:

      $aa = "bb";

      $bb = "aa";

      ehco  $$bb;   // 输出bb

  define("TIREPRIC', 100):常量的声明

 

十一、操作符

  1、算术操作符:+、-、*、/、%

  2、比较操作符:==、=、===、!=、!==、<>、>、<、<=、>=

  3、逻辑操作符:!、&&、 ||、

          and、or、xor  与!、&&、 ||、相同就是优先级较低

  4、类型操作符:instanceof

    calss sampleClass();

    $myObject = new sampleClass();

    if($myObject instanceof sampleClass){

      // 如果对象myobject是sampleClass类的对象返回真

    }

 

十二、number_format():获取小数点后几位

  $num = 1230.0234

  echo number_format($num, 2)  // 输出1230.02;

 

第二章  数据的存储与检索

一、保存数据

  存储数据有两种基本方法:1、保存到普通文件  2、保存到数据库中

 

二、文件处理

  数据写入文件步骤:1、打开这个文件,如果不存在先创建   2、将数据写入这个文件  3、关闭这个文件

  从文件中读数据步聚:1、打开文件  2、从文件中读出数据  3、关闭这个文件

 

  1、打开文件fopen()函数

  $fp = fopen("$DOCUMENT_ROOT/orders.txt", "w");

 

  2、选择文件模式

    打开一个文件有以下3种选择

    a、打开文件为只读、只写或者读和写

    b、如果要写一个文件,你希望覆盖所有的文件内容

    c、如果希望在一个区分了二进制方式和纯文本的系统上写一个文件

 

 

第三章  使用数组

一、创建数组

1、创建一

1 $arr = array("tires", "oli", "spank");
2 $len = count($arr);
3 
4 echo $len;
5 
6 for($i=0; $i<$len; $i++){
7     echo $arr[$i]."<br>";
8 }

 

2、创建二

 1 $arr = array("tires"=>100, "oli"=>10, "spank"=>"name");
 2 
 3 foreach($arr as $value){
 4     echo $value."<br>";   // 获取值
 5 }
 6 
 7 $arr = array("tires"=>100, "oli"=>10, "spank"=>"name");
 8 
 9 foreach($arr as  $i => $value){
10     echo $i."<br>";       // 获取键
11 }

 

3、创建多维数组

1 $arr = array(array("111", "2222", "333"), array("aaa", "bbb", "ccc"));
2 $len = count($arr);
3 
4 for($i=0;$i<$len;$i++){
5     for($k=0;$k<$nLen=count($arr[$i]);$k++){
6         echo $arr[$i][$k]."<br>";
7     }
8 }

 

 

第五章   代码重用与函数编写

一、使用require()和include()函数

       可以将一个文件载入到php脚本中,这个文件包含在脚本中输入的内容,其中包括php语句、文本、html标记、php函数或php类.

       require()与include()基本相同,区别在于函数失败后,require()函数将给一个致命错误,而include()只是给出一个警告

 

第六章  面向对象编程

一、类的定义和属性、方法

 1 class showName {
 2     var $name = "aaaa";
 3     function sayName(){
 4         echo $this->name;
 5     }
 6 }
 7 
 8  调用:
 9 
10  include("showName.php");
11 
12 $getName = new showName;
13 
14 echo $getName->sayName();

 

二、访问修饰符

       1、public:公用

       2、private:私有

       3、protected:声明的属性和方法在类外部调用是不可以的,但可以在继承中使用

 

三、构造函数

       构造函数,当创建一个对象时,它将自动调用构造函数,有初始化的作用。__construct

1 class showName {
2     var $name = "哈哈调用到了";
3     function  __construct (){
4         return $this->name;
5     }
6 }

 

四、析构函数

       析构函数,在销毁一个类之前执行一些操作或完成一些功能,

       一个类的析构函数的定义必须是,__destruct();

 1 class className{
 2     var $name = "siguang";
 3     function __construct($param){
 4         echo "parameter:".$param;
 5     }
 6  
 7     Function __destruct(){
 8         echo $this->name."再见!<br>";
 9     }
10 }
11 
12 $aa = new className("aaa");

 

五、实例化一个参数的对象

1 class className{
2     function __construct($param){
3         echo "parameter:".$param;
4     }
5 }
6 
7 $aa = new className("aaa");

 

六、使用类的属性

       在一个类中可以访问一个特殊的指针-$this,如果访问属性是$attribute时可以$this->attribute来引用

       从外部访问属性

 

七、继承

       使用关键字“extends”

  class  B  extends A{

              // B继承了A 类

  }

例:

 1 class ClassA{
 2     var $name = "aa";
 3     function getName(){
 4         echo $this->name;
 5     }
 6 
 7     function __set($name, $value){
 8         if($name === "name"){
 9             $this->name = $value;
10         }
11     }
12 }
13 
14 class ClassB extends ClassA{
15     var $your = "siguang";
16     function showName(){
17         echo $this->name."<br>";
18         echo $this->your;
19     }
20 }
21 
22 $ObjB = new ClassB;
23 $ObjB->showName();

 

八、继承使用private和protected访问修饰符控制可见性

       Private和protected访问修饰符来控制需要继承的内容,如果一个属性或方法被指定为private它将不能被继承,如果被指定为protected,它将在类外部不可见,但可以在继承中

 1 class ClassA{
 2     private $name = "siguang";
 3     protected $age = "30";
 4 }
 5 
 6 class ClassB extends ClassA{
 7     function showInfo(){
 8         echo $this->name."".$this->age;
 9     }
10 }
11 
12 $getClass = new ClassB();
13 $getClass->showInfo();          // 只能输出 30,$name为私有

 

九、重载

 

十、PHP的面向对象高级功能 

       1、使用Per-Class常量

              class Math{

                     const  pi = 3.1415926;           // 定义常量

}

              Echo  Math::pi                        // 调用常量的方法使用::

 

       2、实现静态方法

              使用static来声明,静态方法就是在没new出对象的时候就可以直接调用的方法,

              使用::来调用

              class Math{

          public $name = "aa";

          const pi = 3.1415;

 

          static function squared($inp){

              return $inp * $inp;

          }

     }

      // 调用

     $getVal = Math::squared(10);

     echo $getVal;

 

       3、检测类的类型和类型提示

              使用instanceof关键字允许检查一个对象的类型

              ($b  instanceof  B) 返回true或false;

 

       4、克隆对象

              $c = clone $b;            // 将创建的b对象复制赋给c一份

 

十一、实现迭代器

 

 

第八章  web数据库

一、关系数据库的概念

       1、表格:关系数据库由关系组成,这些关系 通常称为表格,一个表格就是一个表。

       2、列、行、值:

       3、键、外键:标志表中的一列称为主健,在其它表中也出现相同的主键,称为外键。

       4、模式:数据库整套表格的完整设计称为数据库的模式,一个模式应该显示表格及表格的列、每个表的主键和外键

       5、关系:外键表示两个表格数据的关系,

 

 

四、php语句:

1、echo:将字符串打印到浏览器中.

 

 

 

第九章  MySQL 数据库

一、了解MySQL数据库管理系统

  1、基于数据库的PHP:系统可以管理用户、栏目、图片、文章、评论都存储在数据库中

  2、MySQL的架构:C/S   服务器的端口3306

  3、PHP程序员需要学习哪些数据库操作:

      DBA:数据库管理员

      PHP程序员:1、为项目设计表    2、使用SQL语句

  4、MySQL安装和启动:Linux和window的安装  和php的整合

 

二、MySQL的结构:

  1、my.ini是MySQL的配置文件

  2、data:所有数据库的目录,每个库都有创建的表

  3、bin:MySQL所有命令目录

 

三、集成环境AppServ和APMServer

  1、APMServer:可以开启服务器直接使用,是图形化的集成环境

  2、AppServ:开启Apach需要在window系统开始/程序/cont..../Apach start开启或停止

 

四、启动MySQL

  1、在开始/程序中启动

  2、在window服务中启动

  3、在命令行启动net  start mysql     关闭 net stop mysql

  4、查看MySQL是否是启动状态:命令 service mysql status

  5、开启MySQL服务:service mysql start 

  6、停止MySQL服务:service mysql stop

 

五、MySQL数据库操作

  mysql在window环境变量下 

  命令行下的操作:

  1、连接数据库:mysql -h 服务器地址(localhost)-u root -p

  2、关闭数据库:exit

  3、查看数据库状态:\s

  4、查看配置文件中所有的变量:show variables

    -> ;

  5、查看目录下所有的库:show databases;

  6、创建数据库:create database rrgamedb;

  7、删除数据库:drop database rrgamedb;

  8、创建表:create table 指定库.新建表名(字段 id int, name char(30), age int);

        create table  if exists   tableName(id int, name char(10), age int, info char(100));    // if exists 如果表存在就不用在执行,创建库也需要这样

        这时库里会多出三个文件1、user.frm:保存表结构  2、user.MYD:保存索引  3、user.MYI:记录内容

  9、选择默认数据库: use 数据库  就会切换到哪个库做为默认的库,之后对操作表就可以不用加库的名

  10、查看库中的所有表:在先选择默认库后,show tables;

  11、查看表中的内容:desc user(表名);

  12、向表内插入数据:insert into  user values("1", "siguang", "30");

      插入指定字段,而不是全部需要在表的后面来指定字段

      insert into user(name, age) values("haha", "20");    // 插入指定字段

  13、查询表的内容:select * from user(表);  // 查询表的所有内容

            select * from user where id="20";    // 查看user表条件是id=20

  14、查看表的结构:desc tableName;

  15、更新和修改表内容:

    update 表名 set name="siguang.liu",age="30" where id="2" AND set ="男";    // 查询user表将条件是id=2和set=的条件,name字段等于siguang.liu,

   16、删除表的内容:

    delete from 表名;  

      delete form 表名 where id="2";    // 删除user表中的id=2的名段

  17、给数据库加密码:mysqladmin -u root -p 回车,在输入password

 

 

  其它关键字的意思:

  1、NOT NULL:表中所有行的属性必须有一个值,如果没有指定可以为NULL;

  2、AUTO_INCREMENT:在整数中使用,可以自动产生一个唯一的标识比现存的值更大,每个表中只有一个这样的值;

  3、PRIMARY KEY:列为主键,本列中输入必须是唯一,AUTO_INCREMENT,主键的自动索引功能将管理

  例:create  table soso(id int NOT NULL  AUTO_INCREMENT  PRIMARY KEY,   name char,  age  int);

 

  -------------------------------------------------------------------------------------------------

  1、DDL

    // 创建库、表

    create database 库名

    create table 库名.表名    use 库名

    

    // 删除库、表

    drop database 库名

    drop table 表名

 

  2、DML

    // 插入内容或指定字段插入内容

    inser into user values("1", "lulu", "hahha");

    inser into user("id", "name") values("2", "siguang");

    // 更新

    update user set name="aaaa" where id="1";    // 将user表中条件是id等于1的字段,将name修改成aaaa

    // 删除

    delete form user where id="2";   // 将id等于2的字段删除

 

  3、DQL

    // 查询表

    select * form user;

 

  4、DCL

    \s 看状态

    show databases;  查看所有库

    show tables;     查看所有表

    desc user;      查看表结构

      show variables    查看配置文件的变量名

 

 

第十章  使用PHP从web访问MySQL数据库

一、php访问MySQL数据库的两种方法:

      有两种方法一个是php4之间的面向过程的,另一种是php5之后支持的面向对象的方式,使用mysqli类。

  1、面向对象访问mysqli

  2、面向过程

 

 

第二十三章  在PHP中使用会话控制

一、什么是会话控制

  会话控制的思想是指能够在网站中根据一个会话跟踪用户,可以使用cookie和session,$_SESSION超级全局变量

  会话的基本步骤:

    1、开始会话

    2、注册会话变量

    3、使用会话变量

    4、注销变量并销毁会话

  

二、cookie

  cookie就是一小段信息,它由脚本在客户端机器保存,

  通过php设置cookie:使用setcookie()函数来手动设置cookie,可以通过全局$_COOKIE来实现

PHP存储和获取cookie :

 1 // setcookie之前不允许有任何输出
 2 
 3 // 存储cookie
 4 setcookie("siguang", "liusiguang1983", time()+3600);
 5 
 6 // 获取cookie
 7 $getCookie = $_COOKIE["siguang"];
 8 
 9 // 删除cookie
10 setcookie("siguang");
11 
12 echo $getCookie;

 

三、session会话

  有cookie了为什么还要用session来跟踪用户信息呢,因为cookie存在客户端的文件中,session是服务器端保存的信息

  保存session的两种方法:1、存储到cookie中  2、通过url将session ID 带到下一个页面

 

 

 

 

 

服务器向客户端发数据:先是状态、头信息然后在是内容