跨平台的php+mysql 读书笔记

跨平台的php+mysql 读书笔记

第三章 PHP的数据与操作
第四章 PHP语法
第五章 MySql网络数据库基础
第六章  利用PHP和MySql制作地址簿
第七章  对象和类 
第八章 模式匹配与正则表达式
第九章 Cookie和Session的使用方法


第三章 PHP的数据与操作

3.1 数值

3.1.1 数字

 100 十进制数
   040 八进制数
 0x40 十六进制数

3.1.2 文本
 
 单引号文本实例(可换行) '<p> You Will be aexcellent programer in the fature </p>'
  echo "字符串 (或字符串数组)" 转义用/'表示'
 双引号文本实例(可换行) 同单引号,转义用 /0x32 表示"
 其它转义:
  /t 制表 /r 回车 /n 换行 /$美元 /0nnn 任意八进制数 /0xnn 任意十六进制数 // 反斜杠

 反引号文本:如果要调用 操作系统命令,需要使用反引号文本.
  <?php
   echo '<pre>';
   echo 'dir *.php';
   echo '</pre>'; 
  ?>

3.2 变量 (标量,数组,对象)

3.2.1 标量 具有数值特性的一种变量.
 表示形式如下:
 $+ 字符串
 $teacher_name="张三"
 echo "${teacther_name}老师出差了";
 
3.2.2 数组变量
 一维数组(三种形式)
 1.自动赋值 (不带下标)
  $Number_arr[]=1001;   //@number_arr[0]=1001;
  $Number_arr[]=1002;   //@number_arr[1]=1002; 
  $Number_arr[]=1003;   //@number_arr[2]=1003;
 2.分别赋值
  $Number_arr['Luoming']=1001;
  $Number_arr['Mike']=1002;
  $Number_arr['John']=1003;
 3.一次性给多个赋值
  $Number_arr=array(
   'Luoming'=>1001,
   'Mike'=>1002,
   'John'=>1003
   );
  数组下标可以是数字,也可以是字符串.(注意,下标中不能有单引号)
 
         多维数组
 
  $student=array(
  '97000'=>array(
    'Name'=>'Luoming',
   'age'=>22,
   'Sex'=>'male'
  ),
  '98000'=>array(
   'Name'=>'Liujing',
   'age'=>21,
   'sex'=>'female'
  )
 );
 引用  echo $student![97000][name]; 显示学号为97000的学生姓名.
 
3.2.3 对象简介
 自定义对象.
3.3 常量
 使用Define()函数完成 
 如:Define('pi',3.1.415926) echo 'Pi'=.pi
 引用常量不需要在名称前面加"$"符号.
 PHP中的预定义常量:
  _FILE_ Php程序的文件名,通过Require或Include引用时,在引用文件内部表示被引用的文本名.
  _LINE_ Php程序的行数,通过Require或Include引用时,在引用文件内部表示被引用的行数.
  PHP_VERSION Php版本号
  PHP_OS 操作系统版本号
  TURE 逻辑真
  FALSE 逻辑假 
  E_ERROR 指向最近的错误点
  E_WARING 指向最近的警告点
  E_PARSE 指向语法有潜在问题处
  E_NOTICE 指向发生不正常解释的地方,但不一定是错误,如存取一个不存在的参数等.

3.4 数据操作与表达式
 
  3.4.1赋值运算符 =
  3.4.2算术运算符 + - * / %  += ++ --
  3.4.3逻辑运算符 And Or Xor ! || &&
  3.4.4比较运算符 ==(值) ===(值和类型) != < > >= <=
  3.4.5问号条件操作符 (Exp1)?(Exp2):(Exp3)
  3.3.6位操作符 & | ^ << >>
  3.3.7字符串连接符 .   如:$a='The mother have'.3.'Children';

3.5 变量作用域
 Php默认为局部变量,公用变量用Global声明,还可以用Php中系统公用数组$GLOBALS保存全局变量.
 
3.6 变量的变量 
 利用变量的值来定义变量,不提倡.
 <? Php
  $a = "Hello";
  $$a = " world";
  echo "$a, $Hello"; // Hello, world
  echo "$a, $($a)";  // 也是 Hello, world
 ?> 
3.7 用户提交表单的处理 
  <HTML脚本>
  <body>
  <form name="form1" method="Post" action="testlogin.php">
  <p>用户名
    <input type="text" name="username">
  </p>
  <p>密码
   <iput type="text" name="password">
  </p>
  <p>
   <input type="submit" name="Submit" value="提交">
   <input type="submit" name="clear" vlalue="清空"> 
  </p>
  </form>
  </body>
  </html>
 
  <PHP处理程序>
  <?php
   echo "<br> 您的用户名是:".$username."</br>";
   echo "<br> 您的密码是:".$password."</br>";
  ?>
  
 除了通过表单网页提交表单的数据以外,还可以直接通过网页的URL来给PHP网页传递参数.
 如:http://....userlogin.php?username=myname&password=mypwd
 
 实际上,PHP将所有的表单字段信息放到一个叫做$HTTP_POST_VARS的数组中,然后由数组传递组脚本程序.
 

 小结:
 本章主要介绍了数字,常量,变更的概念,以及和这些主要数据类型有关的数据操作,最后还介绍了PHP网页中从表单数据到变更的转变过程.
 数字就是外观和实际意义一样的操作数,做为程序的一部分直接嵌入代码之中,在程序的运行过程中参与计算,操作,但其值不变.(常量是经过命名的符号)
 数值有三种表达形式:十进制,八进制,十六进制
 变量有三种常见类型:标量,数组与对象.
 
第四章 PHP语法

4.1 Php程序基本结构
  
 标准PHP有以下三种格式
 1>.直接使用标识符(会与XML冲突)
  <?
   php语句;
  ?>
 2>.简单标识(提倡)
  <? PHP
   php语句;
  ?>
 3>.正式说明
  <script language="php">
   Php语句;
  </script>
 
4.2 表达式
 4.2.1 操作符的优先级 
 4.2.2 复杂的表达式

4.3 PHP的语句 
 以";"结束
 if...else(elseif)
  switch case
 for(;;){}
 while (exp) {}
 do {} while (exp)
 break; continue;

4.4 PHP函数

 function 函数名(参数1,参数2,...参数n)
 {
  函数体
  return 返回值;
 }

 函数的参数 
  值传递,  引用传递(&),  默认参数 ( 一般参数表,默认参数表) 如参数$price=3
 函数变量的作用域及其返回值
  retrun(array(变量表));不充许 return (a1,b1,c1) 
 递归函数
  

第五章 MySql网络数据库基础
 
  
 MySql命令行
  mysql -h Host_name -u User_name -p password
 常用SQL语句
  Create 创建数据库,表或其它项目
  Insert 向数据库表中插入新记录
  Update 修改数据库表中的记录
  Select 查询数据库信息
  Delete 删除数据库表中的记录
  Alter  修改数据库的结构
  Drop   删除数据表,表或其它项目
 查询语句
  Select Now();
 创建数据库
  show database;
  create database test;
  use test;
  直接进入test库  mysql test;
 创建表
  create table table_anme(col1name coltype1,col2...other info);
  show tables;
 插入数据
  单条 insert into table_name values(val1,val2...);
  多条 insert into table_name values(val1,val2...),(val11,val22...);
  用Load把文本文件中的数据加载到表中(3.22.15以上版本有效)
   Load Data local infile "data.txt" into table emp;
  脚本文件的运行
   mysql baby_db <insert.txt
 修改数据
  Update emp set emp_id=100003 Where emp_name='mary';
  Update emp set emp_sal=emp_sal*1.01;
 高级查询方法
  一般查询 Select (Cols List) Form (tables List) Where (Cons List)
  排序(NULL为最小值)  Order By Key1,Key2 DESC;
  限制查询结果数量(LIMIT)  select * from emp order by emp_sal desc LIMIT 3;
   Limit 后可以有两个数字, 第一个表示,从第几条记录开始,第二个表示显示几条数据.
  字段联合及重命名
   用 Concat 联合字段, AS 进行重命名
   select concat(emp_id," ",emp_name) as employes from emp;
  日期运算
   函数 Year(),Month(),DayofMonth(),MonthName(),ToDays(),Date_ADD(),Date_Sub();
   Current_Date,
  数据汇总
   Count(),Sum(),Min(),Max(),Avg()
  分组
   Group By
 多表操作
  select emp.emp_id,emp.emp_name,dept.dept_name from emp,dept where emp.dept_id=dept.dept_id;
 删除记录
  Delete From 表名 Where 条件表达式
 删除表对象
  Drop Table
 数据表结构修改
  Alter Table 数据表名 rename as 新表名;
  Alter table 数据表名 Add 列名 列类型;
  Alter table 数据表名 Modify 列名 新列类型;
  
 本章小结:主要介绍了MySql基本的数据操作和语句.
  
第六章  利用PHP和MySql制作地址簿
 
 功能描述
  支持插入新的联系人,地址,支持翻页,删除修改已有联系人,查按条件对数据进行排序
 创建数据库
  id,name,address,tel,bir,recent_date,more,mark_deleted
 创建应用程序用户
  向MySql系统表user中添加address用户,并设置权限
  Insert into user (host,user,password,select_priv,insert_priv,update_priv,delete_priv)
  Values ( 'localhost','address',password('address'),'y','y','y','y');

  Insert into db (host,db,user,insert_priv,update_priv,delete_priv)
  Values ( 'localhost','baby_db','address','y','y','y','y');
  
  用Grant 对用户进行授权  Grant 用户权限 ON 权限范围 To user IDENTIFIED By "密码";
  Grant Delete,Insert,Update,Select ON baby_db.address to address IDENTIFIED By "address";

 连接数据库脚本
  <? Php
   $username='root';
   $passpwd='root';
   $link_message=mysql_connect('localhost',$username,$passpwd);
   echo $link_message; 
  ?>  
  如果显示: Resource id #1,表示已经建立了数据库连接.

  通用的一个包含文件
  <? Php
   $username='root';
   $passpwd='root';
   $db_name='baby_db';
   $table_name='address';
   $link_message=mysql_connect('localhost',$username,$passpwd);
   if(!$link_message)
   {
    echo '对不起,数据库连接错误!';
    exit();
   }
 
  ?> 


 插入数据脚本
  表单设计
  <body>
   <? Php
    require('pre_inc.php')
   ?>
  <form name='form1' method='post' action='add_action.php');
  ...
  </body>
  <添加数据的Php代码>
  <? Php
   require('pre_inc.php')
   $char_sql='Inset Into $table_name (name,address,tel,bir,recent_date,more)
    values('$name','$adress','$tel','$bir','$recent_date','$more');';
   $result=mysql_db_query($db_name,$char_sql,$link_message);
   if(!result)
   {
    echo '<p>数据库插入失败</P>';
    echo '<a href=add_form.php>请单击这里返回得新保存!</a>';
   }
   else
   {
    echo '<p>数据库插入成功</P>'; 
    echo '<a href=add_form.php>请单击这里返回继续!</a>';   
   }
  ?>
  用mysql_db_query()函数发送SQL语句时要指定数据库及连接号(保存在$link_messge变量中).

 显示数据
  思路如下:
   连接数据库
   生成查询语句
   用mysql_db_query()发送数据库命令,并保存返回值$result
   用mysql_num_rows()和$result变量得到总记录数
   用mysql_fetch_object()和result得到当前记录,并返回记录保存到$record中,
    $record是一个对象变量,通过$record->字段名得到字段.
   用mysql_fetch_object()读取一个当前记录后,指针将指向下一个记录,直到最后一个记录。
  <显示记录主代码>
  <? Php
   require('pre_inc.php');
  ?>
  <table><tr>
   <td>联系人编号</td>
   <td>姓名</td> 
   <td>电话</td> 
   <td>地址</td>
   <td>生日</td>
   <td>最近会面日期</tdr>
   <td>更多的说明</td></tr>
  <? Php
   $char_sql="select * from $table_name where mark_deleted='N'";
   $result=@mysql_db_query($db_name,$char_sql,$link_message);
   $rows_number=@mysql_numrows($result);
   for($index=0;$index<$rows_number;$index++)
   {
    $record=@mysql_fetch_object($object);
    require('display_a_rec.php');
   }
  ?>
  </table>
  
  <显示一条记录 display_a_rec.php>
  <tr>
   <td><?Php echo $record->id ?></td>  
   <td><?Php echo $record->name ?></td> 
   <td><?Php echo $record->tel ?></td> 
   <td><?Php echo $record->address ?></td> 
   <td><?Php echo $record->bir ?></td> 
   <td><?Php echo $record->recent_date ?></td> 
   <td><?Php echo $record->more ?></td> 
  </tr>
    
  排序:
   if(strlen($sort_field)!=0)
   {
    $char_sql="select * from $table_name where mark_deleted='N'";
   }
   else
   {
    $char_sql="select * from $table_name Where mark_deleted='N' Order by $sort_field $sort_way";
   }
   在require('display_a_rec.php');后面(?>后面)加入
   <?php echo "<a href=/"$PHP+SEL?SortField=recent_date&sort_way=ASC/"> 升序显示</a>"; ?>

 翻页显示数据
  利用Limit实现分页显示功能
   $char_sql="select * from $table_name where mark_deleted='N' Limit $initial_record,$records_one_page";

 编辑记录脚本
  使用Update命令,同Insert 
 
 删除记录 
  使用Delete命令,同Insert 
  
   
第七章  对象和类   

  
 7.1 面向对象的设计方法
 7.1.1 对象和类  
  1.对象  PHP中反映为一个对象型的变量
  2.类
  3.属性
  4.方法
 7.1.2 继承
 7.1.3 封装
 7.1.4 多态

 7.2 PHP中面向对象方法的使用
 7.2.1 类和对象的实现
  class 类名 (class_name)
  {
   var $prop1;
   var $prop2;
   定义属性
   fucntion function_name1()
   {
   }
   function function_name2()
   {
   }
  }
  
  示例:
  class auto
  {
   var $props;
   function auto{
    $trademark='BMW',
    $mode='550',
    $speed='200', 
    $color=''}
   {
    $this->props['trademark']=$treadmark;    
    $this->props['mode']=$mode;  
    $this->props['speed']=$speed;  
    $this->props['color']=$color;  
   }
   function drive();
   function fix();
  };

  类实例创建 : 对象名=new 类名{构造函数参数值};
  $auto_ex=new auto("fararrie","550","300","red");

 7.2.2 类的继承(EXTENDS关键字)
  class recing_car EXTENDS auto
  {
   function recing_car($tradmark,$mode,$speed,$color,$sspped=200)
   {
    $this->props['sspeed']=$sspeed;
    $this->auto($tradmark,$mode,$speed,$color);
   } 
  }

 7.2.3 多态的实现

 7.2.4 对象的串行化
  $obj=new class_nmae();
  $obj_char=serialize($obj);
  ....
  $obj2=unserialize($obj_char);
  PHP不能串行化对象的方法.

 7.3数据库示例

第八章 模式匹配与正则表达式


第九章 Cookie和Session的使用方法
   
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值