PDO 基本使用(简)
①【PDO是啥】:
PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MS SQL Server、SQLite,同样的,我们必须借助 ADOdb、PEAR::DB、PHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够我们直接用C/C++写的扩展斜率高捏?所以嘛,PDO的出现是必然的,大家要平静学习的心态去接受使用,也许你会发现能够减少你不少功夫哦。
②【为什么要使用PDO】?
PDO是PHP5新加入的一个重大功能,我们的数据库服务器为MySQL,所有的程序代码的数据库操作全是一mysql()或者mysqli()函数来操作,当我们的数据库 需要更换时比如换成,SQL、SERVER、PostgreSQL、MS 等,我们不可能去修改所有的程序代码!所以就要用到PDO,PDO很好的帮我们解决了这个问题,使用PDO操作非常方便,只需要修改数据源格式,和加载相应的驱动文件到PHP.ini即可;
③【PDO的特点】?
1)编码的一致性
2)灵活性
3)面向对象特性
4)高性能
二、PDO基本使用
1、PDO的配置
1)修改php.ini,添加MySQL的PDO扩展
打开PHP配置文件php.ini,找到php_pdo_mysql.dll这行去掉钱买你的分号
下面有一堆类似 ;extension=php_mbstring.dll 的东西,这里就是PHP扩展加载的配置了,我们再最后面添加上我们PDO的扩展: extension=php_pdo.dll extension=php_pdo_mysql.dll extension=php_pdo_pgsql.dll extension=php_pdo_sqlite.dll extension=php_pdo_mssql.dll extension=php_pdo_odbc.dll extension=php_pdo_firebird.dll ;extension=php_pdo_oci8.dll
2)扩展目录中要有相应的扩展文件
3)PDO连接不同的数据,要有不同的数据库驱动文件,即我们所加入配置文件的扩展
4)重新启动服务器,IIS/Apache,我的是apache,使配置生效
2、数据源配置的格式
1)数据源格式
3、方法讲解
1)添加
<?php
header('content-type:text/html;charset=utf8');
//连接数据库
$dsn="mysql:dbname=test;host=127.0.0.1";
//数据库的用户名
$user="root";
//数据库的密码
$password="123456";
//生成PDO对象
$object = new PDO($dsn,$user,$password);
//执行添加
$sql="insert into student(`name`,`sex`,`sex`) values('zhangsan','男','18')";
if($object->exec($sql)){ echo '添加成功';
}
注释:exec主要用于执行没有返回结果集的操作,比如insert、delete、update,返回的是影响的记录条数
2)查询
实现代码:
<?php
header('content-type:text/html;charset=utf8');
//连接数据库
$dsn="mysql:dbname=test;host=127.0.0.1";
//数据库的用户名
$user="root";
//数据库的密码
$password="123456";
//生成PDO对象
$object = new PDO($dsn,$user,$password); $sql="select * from student";
$result = $object->query($sql);
while($arr=$result->fetch()){ print_r($arr);
}
也可以这样 如下:
$data=$result->fetchAll();
print_r($student_info);
输出结果为二维数组
数字索引和关联索引都有,属于浪费资源,我们只需要关联索引:还可用用一下方式查询:
$object->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
$result = $object->query($sql);
$result->setFetchMode(PDO::FETCH_ASSOC);
$result_array = $result->fetchAll();
print_r($result_array);
注释:
setAttribute()方法是设置部分属性,主要属性有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等,我们设置的是PDO::ATTR_CASE(使用关联索引获取数据)
PDO::CASE_UPPER是设置关联索引为大写,
PDO::CASE_LOWER -- 强制列名为小写
PDO::CASE_NATURAL -- 列名按照原始方式
PDO::CASE_UPPER -- 强制列名为大写
setFetchMode()方法设置获取结果集的返回值类型,同样类型还有:
PDO::FETCH_ASSOC --关联数组形式
PDO::FETCH_NUM -- 数字索引形式数组
PDO::FETCH_BOTH --两者数组形式都有
PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的mysql_fetch_object()
PDO 基本使用(简)相关推荐
- php mysql errorcode_PHP errorCode()和errorInfo():PDO中的错误处理
在 PDO 中有两个获取程序中错误信息的方法,分别是 errorCode() 方法和 errorInfo() 方法.在介绍这两种方法之前,我们先来了解一下 PDO 中的错误处理模式. 1.PDO 的错 ...
- php pdo 存储过程的返回所有结果,PHP_PDO 调用存储过程,返回参数问题
$stmt = $db->prepare("CALL pro_test(?,@?)");$stmt->bindParam(1, $name);$stmt->bin ...
- php面试题集-简答题
简答题 PHP的意思 答:PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页 请简单阐述您最得意的开发之作. 暂无答案 对于大流量的网站, 您采用什么样的方法来解决访 ...
- PHP 中文工具类,支持汉字转拼音、拼音分词、简繁互转
ChineseUtil 下载地址:https://github.com/Yurunsoft/ChineseUtil 另外一个中文转拼音工具:https://github.com/overtrue/pi ...
- 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...
- 简析平衡树(三)——浅谈Splay
前言 原本以为\(Treap\)已经很难了,学习了\(Splay\),我才知道,没有最难,只有更难.(强烈建议先去学一学\(Treap\)再来看这篇博客) 简介 \(Splay\)是平衡树中的一种,除 ...
- 《大道至简》读后感(伪代码)
public class 伪代码{ bool 愚公移山() { //项目沟通的基本方式:惩山北之塞: //项目的目标:毕力平险,指通豫南,达于汉阴 //技术方案: 扣石垦壤,簸箕运于渤海之尾 bool ...
- 基于libmad库的MP3解码简析
基于libmad库的MP3解码简析 MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3). ...
- 简书php硬件交互,php设计模式——适配器模式
适配器模式 适配器模式(Adapter)模式:将一个类的接口,转换成客户期望的另一个类的接口.适配器让原本接口不兼容的类可以合作无间.列如:将数据库接口封装成一样的接口, 这样就可以适用于不同场景 案 ...
最新文章
- proteus仿真micropython_【雕爷学编程】MicroPython动手做(04)——零基础学MaixPy之尝试运行...
- mysql忘记密码怎么改
- Node.js 使用webpack-dev-server工具运行项目实现自动打包编译的功能
- 全新章节抢先读 | 揭秘覆盖全端业务的文娱大前端技术
- android键盘移动光标,在Android键盘上完成键
- lvs mysql 端口_LVS配置及多端口服务配置
- XFire WebService开发快速起步
- 2015-04-11一些知识点
- VB 文件未找到: 'C:\WINDOWS\system32\ieframe.dll\1'--继续加载工程吗?
- 克服跨洋网络延迟,使用Docker Hub Mirror加速Docker官方镜像下载
- linux代码实现进程监控,linux进程监控shell脚本代码
- 29. JavaScript - 测试 jQuery
- tcs标准编写软件_tcs2010下载-tcs2010(中国标准编写模板) 免费版 - 河东下载站
- Mac环境下安装、配置liteide
- Cisco Aironet WLAN系列AP的瘦胖模式转换
- html5清新文艺,清新文艺的短句
- sleep ,wait,notify和notifyAll
- 【论文阅读第一期】Goods:Organizing Google’s Datasets总结
- 原创 牛客网产品笔试题刷题打卡——用户研究
- windows 和 Linux 查看IP属性(ipconfig,ifconfig)