对PDO和AJAX的认识

本文详细介绍了PDO(PHP Data Object)的使用步骤、预定义类及特点,强调了PDO的参数绑定和预编译功能。同时,分析了PDO在性能和负载方面的表现。此外,还概述了AJAX的基本概念、工作原理,列举了其优点和缺点,如无刷新更新、异步通信以及对搜索引擎支持较弱等问题。

一、对PDO的认识
1、PDO(PHP Data Object)扩展为PHP定义了一个访问数据库的轻量、持久的接口。实现PDO接口的每一种数据库驱动都能以正则扩展的形式把各自的特色表现出来。
  主要:PDO扩展只是一个抽象的接口层,利用PDO扩展本身并不能实现任何数据库操作,必须使用一个特定的数据库PDO驱动访问数据库

PDO访问数据库的步骤:安装PDO——>创建PDO对象——>使用PDO
创建PDO对象:$db=new PDO(DSN,username,password)
2、PDO预定义类:
  PDO包含了三个预定义类:PDO、PDOStatement、PDOException
(1)PDO类:代表一个PHP和数据库之间的连接
PDO::begin Transaction:开始事务
PDO::commit:提交事务
exec:执行一条SQL语句并返回影响的行数,常用在删除操作中
PDO::prepare:为执行准备一条SQL语句,返回语句执行后的联合结果集(预处理)
query:执行一条SQL语句并返回结果集
PDO::rollback:回滚一个事务,在实验中,因为一条数据插入失败,使用这个方法会导致整个插入的过程回滚,也是就是插入失败。

(2)PDOStatement类:代表一条预处理语句以及语句执行后的联合结果集
bindColomn:绑定一个PHP变量到结果集输出列
bindParam:绑定一个变量到PHP预处理语句中的参数
bindValue:绑定一个值到处理语句中的参数
closeCursor:关闭游标,使语句可以再次执行
cloumnCount:返回结果集中列的数量
errorInfo:从语句中返回包含错误信息的数组
execute:执行一条预处理语句
fetch:从结果集中取出一行
fetchAll:从结果集中取出一个包含所有行的数组
fetchColomn:返回结果集中某一列的数据
PDO::FETCH_NUM:返回一个索引为以0开始的结果集列号的数组。(实验中常用到的方法)
getAttribute:返回一个PDOStatement属性
nextRowset:返回下一个结果集
rowCount:返回SQL语句执行后影响的行数
setAttribute:设置一个PDOStatement属性

3.PDO的特点
性能:PDO 从一开始就吸取了现有数据库扩展成功和失败的经验教训。因为 PDO 的代码是全新的,所以我们有机会重新开始设计性能,以利用 PHP 5 的最新特性。
能力:PDO 旨在将常见的数据库功能作为基础提供,同时提供对于 RDBMS 独特功能的方便访问。
简单:PDO 旨在使您能够轻松使用数据库。API 不会强行介入您的代码,同时会清楚地表明每个函数调用的过程。
运行时可扩展。PDO 扩展是模块化的,使您能够在运行时为您的数据库后端加载驱动程序,而不必重新编译或重新安装整个 PHP 程序。例如,PDO_OCI 扩展会替代 PDO 扩展实现 Oracle 数据库 API。还有一些用于 MySQL、PostgreSQL、ODBC 和 Firebird 的驱动程序,更多的驱动程序尚在开发。
PDO最大的特点是引入了参数绑定和预编译
  预编译负责两件事,转移和软解析提速。程序要支持预编译,除了数据库支持外,还需要驱动支持(PDO和NySQLi支持)

4、PDO的效率问题
  (1)在一个大表大数据量中进行测试,PDO的CRUD效率比MySql直连低5%~15%,并且方差大于MySQL直连
  (2)至于负载方面,PDO开启长连接后负载高于MySQL且比较稳定。
其实在实际应用中,90%的程序是不会进行数据库迁移的,有数据库迁移的应用程序少之又少。

二、对AJAX的认识
AJAX:Asynchronous JavaScript and XML(异步的JavaScript和XML)。AJAX是一种用于创建快速动态网页的技术。通过在后台和服务器进行少量的数据交换,可以使网页异步更新,也就说不用加载整个网页也可以对网页的某一部分进行更新。
综合描述:AJAX引擎,实际上是一个比较复杂的JavaScript应用程序,用来处理用户请求,读写服务器和更改DOM内容。JavaScript的AJAX引擎读取信息,并且互动地重写DOM,这使网页能无缝化重构,也就是在页面已经下载完毕后改变页面内容,这是我们一直在通过JavaScript和DOM在广泛使用的方法,但要使网页真正动态起来,不仅要内部的互动,还需要从外部获取数据,在以前,我们是让用户来输入数据并通过DOM来改变网页内容的,但现在,XMLHttpRequest,可以让我们在不重载页面的情况下读写服务器上的数据,使用户的输入达到最少。
AJAX的编写方法和JS类似,也是通过

常用方法:

1.open(请求类型(提交方式是get类型还是post类型),url(规定提交的地址),布尔值)
2.send()参数为作为请求主体发送的数据,如果不需要请求主体发送数据,则传入null
3.abort()取消异步请求
4.getAllResponseHeaders()把HTTP请求的所有响应首部作为键/值对返回
5.getResponseHeader(“header”)返回指定首部的串值
6.setRequestHeader(“header”, “value”)把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()。设置header并和请求一起发送 ('post’方法一定要 )

常用属性:

  1. readyState 表示请求/响应过程的当前活动阶段(0:未初始化,尚未调用open方法;
    (1):启动,已调用open方法,未调用send方法;(2):发送:已调用send,未接到响应;(3):接收,已经接收部分响应数据;(4).完成,可以在客户端使用)
    2.onreadystatechange readyState的值改变一次就会调用一次这个方法
    3.responseText 作为响应主体被返回的文本
    4.responseXML 保存响应类型为“text/xml”或"application/xml"的响应数据的XML DOM文档
    5.status 响应的HTTP状态
    6.statusText Http状态的说明

ajax优点:

1.无刷新更新数据,减少用户等到时间,更好的用户体验
2.异步与服务器通信,无需打断用户,响应更加迅速
3.可以把服务器的一些负担转到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,AJAX的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。
5.基于标准化,广泛被支持
ajax缺点

1.破坏了前进后退功能,用户往往通过后退按钮来取消上一步操作,但是使用ajax无法实现。可以使用Gmail来解决这个问题,它只是采用的一个比较笨但是有效的办法,即用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。
2.安全问题。ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有自身受到如跨站脚本攻击,SQL注入等攻击。
3.对搜索引擎支持较弱
4.一些手持设备不能很好的支持等

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值