`
sunguanxing
  • 浏览: 1083989 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP-数据库方面

阅读更多
 PHP 在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:
  · Adabas D
  · DBA
  · dBase
  · dbm
  · filePro
  · Informix
  · InterBase
  · mSQL
  · Microsoft SQL Server
  · MySQL
  · Solid
  · Sybase
  · ODBC
  · Oracle 8
  · Oracle
  · PostgreSQL
  而在 Internet 上它也支持了相当多的通讯协议 (protocol),包括了与电子邮件相关的 IMAP, POP3;网管系统 SNMP;网络新闻 NNTP;帐号共用 NIS;全球信息网 HTTP 及 Apache 服务器;目录协议 LDAP 以及其它网络的相关函数。
  除此之外,用 PHP 写出来的 Web 后端 CGI 程序,可以很轻易的移植到不同的操作系统上。例如,先以 Linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到 SUN 工作站上,不用重新编译 CGI 程序。面对快速发展的 Internet,这是长期规划的最好选择。
  变数类型:
  PHP有好多种变数; 主要有这些:
  - 数字 (integer - 例: 32)
  - 布尔值 (boolean - 例: TRUE)
  - 字串 (string - 例: 'a string of text')
  - NULL
  - 资源(resource)
  - 数组 (array - 例: arrayname[2])
  -对象(object)
  语法:
  语法有三种:
  //comment
  /* comment */
  # comment
  基本的 "Control Structures":
  * if ... else
  if (condition == true) ;
  * if ... else then
  if (condition == true)
  else if (condition2 == true) ;
  一个PHP实例:
  <html>
  <head>
  <title>First program</title>
  </head>
  <body>
  <?php
  echo "hello world";
  ?>
  </body>
  </html>
  请看:
  php官方网站:www.php.net
  php对面向对象的支持
  面向对象编程的概念:
  不同的作者之间说法可能不一样,但是一个OOP语言必须有以下几方面:
  抽象数据类型和信息封装
  继承
  多态
  在PHP中是通过类来完成封装的:
  <?php
  class Something {
  // 在OOP类中,通常第一个字符为大写
  var $x;
  function setX($v) {
  // 方法开始为小写单词,然后使用大写字母来分隔单词,例如getValueOfArea()
  $this->x=$v;
  }
  function getX() {
  return $this->x;
  }
  }
  当然你可以按自己的喜好进行定义,但最好保持一种标准,这样会更有效。数据成员在类中使用"var"声明来定义,在给数据成员赋值之前,它们是没有类型的。一个数据成员可以是一个整数,一个数组,一个相关数组(associative array)或者是一个对象。方法在类中被定义成函数形式,在方法中访问类成员变量时,你应该使用$this->name,否则对一个方法来说,它只能是局部变量。
  使用new操作符来创建一个对象:
  $obj=new Something;
  然后你可以使用成员函数通过:
  $obj->setX(5);
  $see=$obj->getX();
  在这个例子中,setX成员函数将5赋值给对象的成员变量x(不是类的),然后getX返回它的值5。可以象:$obj->x=6那样通过类引用方式来存取数据成员,这不是一个很好的OOP习惯。我强烈建议通过方法来存取成员变量。如果你把成员变量看成是不可处理的,并且只通过对象句柄来使用方法,你将是一个好的OOP程序员。不幸的是,PHP不支持声明私有成员变量,所以不良代码在PHP中也是允许的。继承在PHP中很容易实现,只要使用extend关键字。
  <?php
  class Another extends Something {
  var $y;
  function setY($v) {
  $this->y=$v;
  }
  function getY() {
  return $this->y;
  }
  }
  "Another"类的对象现在拥有了父类(Something)的全部的数据成员及方法,而且还加上了自己的数据成员和方法。
  你可以使用
  $obj2=new Something;
  $obj2->setX(6);
  $obj2->setY(7);
  PHP现在还不支持多重继承,所以你不能从两个或两个以上类派生出新的类来。你可以在派生类中重定义一个方法,如果我们在"Another"类中重定义了getX方法,我们就不能使 用"Something"中的getX方法了。如果你在派生类中声明了一个与基派同名的数据成员,那么当你处理它时, 它将“隐藏”基类的数据成员。
  你可以在你的类中定义构造函数。构造函数是一个与类名同名的方法,当你创建一个类的对象时会被调用,例如:
  <?php
  class Something {
  var $x;
  function Something($y) {
  $this->x=$y;
  }
  function setX($v) {
  $this->x=$v;
  }
  function getX() {
  return $this->x;
  }
  }
  所以你可以创建一个对象,通过:
  $obj=new Something(6);
  构造函数会自动地把6赋值给数据变量x。构造函数和方法都是普通的PHP函数,所以你可以使用缺省参数。
  function Something($x="3",$y="5")
  接着:
  $obj=new Something(); // x=3 and y=5
  $obj=new Something(8); // x=8 and y=5
  $obj=new Something(8,9); // x=8 and y=9
  缺省参数使用C++的方式,所以你不能忽略Y的值,而给X一个缺省参数,参数是从左到右赋值的,如果传入的参数少于要求的参数时,其作的将使用缺省参数。
  当一个派生类的对象被创建时,只有它的构造函数被调用,父类的构造函数没被调用,如果你想调用基类的构造函数,你必须要在派生类的构造函数中显示调用。可以这样做是因为在派生类中所有父类的方法都是可用的。
  <?php
  function Another() {
  $this->y=5;
  $this->Something();
  //显示调用基类构造函数
  }
  OOP的一个很好的机制是使用抽象类。抽象类是不能实例化,只能提供给派生类一个接口。设计者通常使用抽象类来强迫程序员从基类派生,这样可以确保新的类包含一些期待的功能。在PHP中没有标准的方法,但是:如果你需要这个特性,可以通过定义基类,并在它的构造函数后加上"die" 的调用,这样就可以保证基类是不可实例化的,现在在每一个方法(接口)后面加上"die" 语句,所以,如果一个程序员在派生类中没有覆盖方法,将引发一个错误。而且因为PHP 是无类型的,你可能需要确认一个对象是来自于你的基类的派生类,那么在基类中增加一个方法来实义类的身份(返回某种标识id),并且在你接收到一个对象参数时校验这个值。当然,如果一个邪恶不好的程序员在派生类中覆盖了这个方法,这种方法就不起作用了,不过一般问题多发现在懒惰的程序员身上,而不是邪恶的程序员。
  当然,能够让基类对程序员无法看到是很好的,只要将接口打印出来做他们的工作就可以了。在PHP中没有析构函数。
  重载(与覆盖不同)在PHP中不支持。在OOP中,你可以重载一个方法来实现两个或重多的方法具有相同的名字,但是有不同数量或类型的参数(这要看语言)。PHP 是一种松散类型的语言,所以通过类型重载不起作用,然而通过参数的个数不同来重载也不起作用。
  有时在OOP中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数)。在PHP中实现它的技巧是:
  <?php
   class Myclass {
  function Myclass() {
  $name="Myclass".func_num_args();
  $this->$name();
  //注意$this->name()一般是错误的,但是在这里$name是一个将被调用方法的名字
  }
  function Myclass1($x) {
  code;
  }
  function Myclass2($x,$y) {
  code;
  }
  } 通过在类中的额外的处理,使用这个类对用户是透明的:
  $obj1=new Myclass('1'); //将调用Myclass1
  $obj2=new Myclass('1','2'); //将调用Myclass2
  有时这个非常好用。
分享到:
评论

相关推荐

    概念数据库设计实例-数据库方面

    很不错哦,一定要下载哦,是.php格式,需要的话赶快下载吧,走过不要错过,过了就可惜了

    PHP数据库陷阱-数据库安全知识集合

    主要讲解PHP数据库陷阱等安全方面的知识,主要讲解的内容有sq1注入原理解释、搭建php开发环境+做出框架图、创建测试数据库和表、开发用户管理项目、php之sq1注入+万能密码和万能用户名、sql注入+防范(服务器配置、...

    MySQL/PHP数据库应用开发指南 PDF版 PART1

    MySQL/PHP数据库应用开发指南 PART1 本书以应用程序的开发为核心,以具体实例展示了如何将PHP和MySQL紧密结合,实现数据驱动Web站点。全书共分为5个部分,首先讲解了使用MySQL所需了解的数据库方面的知识,接着探讨...

    基于PHP主机域名管理器的毕业设计,使用MySQL数据库存储数据,采用PDO方式进行数据库访问 Bootstrap框架DNS管理

    系统采用PHP语言开发,使用MySQL数据库存储数据。系统的主要功能包括: - 用户管理:支持用户注册、登录、注销等功能,通过用户身份验证来保证系统的安全性; - 域名管理:支持域名的添加、删除、修改、查询等功能...

    MySQL/PHP数据库应用开发指南

    全书共分为5个部分,首先讲解了使用MySQL所需了解的数据库方面的知识,接着探讨了PHP的基本脚本语言、PHP函数以及编写可管理的简捷代码的技巧,然后给出了两个简单的应用程序,来宾簿和调查表,在实践中应用所学的...

    php版mysql大数据库备份和恢复工具

    php版mysql大数据库备份和恢复工具,这是亮仔修改的无乱码版 在原faisunSQL 4.0的基础上,针对数据备份过程中出现乱码的问题,做了优化. 增强的功能: 1.自动识别数据库版本,对于MySQL 4.1以上,备份数据时提示选择...

    PHP168后台数据库表说明

    本教程详细的讲叙了PHP168所涉及的各个方面的数据库表,有博客,分类,商城,圈子,视频,图库,下载,flash等。对进行php168二次开发是一个很好的参照。

    php网页源码学生管理系统mysql数据库web结构html布局

    PHP 学生管理系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 此次系统的开发设计主要是是包括了三种权限的设计,一个是学生...

    MySQL 数据库设计复习笔记及项目实战

    包括DZ的Ucenter和UcenterHome的数据库,所以这段时间话了近5个小时的时间好好的整理了下数据库方面的基本内容,配合现有的框架来实现快捷的数据库设计,来满足目前项目的需求 参考的数据库文档主要有:目前国内的...

    数据库原理(第5版)

    事实上,在某些方面这些主题对于小型数据库更重要,因为它们没有专业的数据库管理员来确保关键任务的执行。第6章也讨论了分布式数据库和面向对象的数据库。 第7章介绍了使用基于Web的数据库处理,包括开放数据库连接...

    php网页源码选题管理系统mysql数据库web结构html布局

    PHP 选题管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 此次系统的开发设计主要是是包括了三种权限的设计,包括管理员、...

    MySQL网络数据库技术精粹

    可以说,MySQL己经在网络数据库方面取得了辉煌的成就,越来越多的网站,包括个人网站,政府组织网站;甚至商业网站都对它青睐有加。本书共分9章,详细讲述了MySQL数据库的基本概念以及安装方法;MySQL的数据类型,...

    PHP教学质量评估系统Dreamweaver开发mysql数据库web结构php编程计算机网页代码

    PHP教学质量评估系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 开发《教学质量评估管理系统》有两方面的好处:一是《教学...

    数据库系统概念第六版最新版英文版

    本书是数据库系统方面的经典教材之一,已被斯坦福大学、德克萨斯大学、耶鲁大学、康奈匀大学、伊利诺伊大学、印度理工学院等众多名校作为数据库系统课程的指定教材或推荐教材,其第3版的中文版也已被国内多所大学采用...

    基于PHP电子商务网站的毕业设计演示视频,通过使用PHP和MySQL等技术,我们将实现该网站的所有功能,一个全面的在线购物平台

    本项目将涵盖以下几个方面: ## 功能需求 - 用户注册和登录 - 商品分类和搜索 - 购物车和结算 - 订单管理和物流跟踪 - 用户评价和客户服务 ## 技术实现 - 使用PHP作为后端开发语言 - 前端使用HTML、CSS、...

    php数据库操作综合应用题

    以PHP访问MySQL综合练习设计的习题,涉及对数据表的增、删、改、查的操作,可以利用此习题进行数据库操作方面综合应用测试 附参考答案,参考答案以MySQLi面向对象为例解答

    php网页源码学生评价管理系统mysql数据库web结构html布局

    PHP 学生评价管理系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 学生评价管理系统的开发主要实现以下功能,下面具体介绍: ...

    PHP从入门到精通.pdf-入门教程.CHM

    《PHP从入门到精通》从初学者角度出发,通过通俗易懂的语言,丰富多彩的实例,详细介绍了使用PHP进行网络开发应该掌握的各方面技术。 全书共分27章,包括初识.PHP、PHP环境搭建和开发工具、PHP语言基础、流程控制...

Global site tag (gtag.js) - Google Analytics