初识PHP(四)PDO对象配置于使用
一、PDO的概念
PDO其实就是一个数据库的抽象层,使用PDO编程可以方便的在之后的实际运营中随时更改数据库而不用变更源代码。PDO的位置如下图所示:

二、PDO的开启
PDO需要使用php 5.1 之后的版本。
查看是否开启pdo功能需要新建一个php文件,使用phpinfo函数查询


如图,PDO驱动和pdo_mysql扩展均开启(enabled)
linux:
我的系统是ubuntu14.04.3,php版本是PHP 5.5.9-1ubuntu4.14 ,在我这里pdo扩展默认是开着的(在后期的php版本中pdo已经是核心功能,不需要再自行安装了,网上的教程都是针对之前的php版本的),而且php的mysql扩展也是默认开着的,不知道这是不是因为我用的是ubuntu版的php。如果mysql扩展没开的话也只需执行sudo apt-get install php5-mysql 安装驱动即可,别的数据库也是这样操作。
win:在php.ini文件中,把以下两行注释去掉
extension=php_pdo.dll //PDO驱动程序共享扩展必须有 (windows)
extension=php_pdo_mysql.dll //MySQL扩展
如果要开启别的数据库扩展去掉相应的注释即可
三、PDO的使用
3.1 PDO对象初始化
PDO的构造函数如下:
PDO __construct( string dsn
[, string username
[, string password
[, array driver_options]]] );
dsn数据库连接信息如“mysql:host=localhost;dbname=库名”
下面举个栗子:
$pdo = new PDO("mysql:host=localhost;dbname=phptest","root","123");
这就完成了PDO对象的初始化,所连接的数据库是mysql数据库的phptest这个数据库,使用的用户名和密码分别是root和123
如果把dsn信息写到配置文件中,则使用如下方式:
$pdo = new PDO("uri:MysqlDbo.ini","root","123"); \\dsn数据写在MysqlDbo.ini文件中
3.2 PDO对象的使用
PDO的成员方法如下:
1 ) query($sql); //用于执行查询SQL语句。返回PDOStatement对象
2 ) exec($sql); //用于执行增、删、改操作,返回影响行数;
3 ) setAttribute(); //设置一个"数据库连接对象"属性。
4 ) fetchAll(); //解析数据
下面举例:
数据库原始数据如下:

查询数据:
<?php
//连接数据库
try {
$pdo = new PDO("mysql:host=localhost;dbname=phptest", "root", "20125202");
}
catch (PDOException $e){
die("数据库连接失败".$e->getMessage());
}
//查询语句
$sql = 'select * from students';
//执行语句、解析数据
echo ' id '.'____________'.'name'.'____________'.'sex'."<br>";
foreach ($pdo->query($sql) as $val){
echo $val['id'].'____________'.$val['name'].'____________'.$val['sex']."<br>";
}
?>
效果如图:

插入数据:
<?php
//连接数据库
try {
$pdo = new PDO("mysql:host=localhost;dbname=phptest", "root", "123");
}
catch (PDOException $e){
die("数据库连接失败".$e->getMessage());
}
//插入语句
$sql = "insert into students values('20125203','tony','female')";
//执行语句、解析数据
$res = $pdo->exec($sql);
if ($res){
echo "插入成功!</br>";
}
//查询结果
$sql = 'select * from students';
echo ' id '.'____________'.'name'.'____________'.'sex'."<br>";
foreach ($pdo->query($sql) as $val){
echo $val['id'].'____________'.$val['name'].'____________'.$val['sex']."<br>";
}
?>
效果如图:

修改于删除数据操作类似
修改数据:
<?php
//连接数据库
try {
$pdo = new PDO("mysql:host=localhost;dbname=phptest", "root", "123");
}
catch (PDOException $e){
die("数据库连接失败".$e->getMessage());
}
//插入语句
//$sql = "insert into students values('20125203','tony','female')";
//修改语句
$sql = "update students set sex='male' where id='20125203'";
//执行语句、解析数据
$res = $pdo->exec($sql);
if ($res){
echo "修改成功!</br>";
}
//查询结果
$sql = 'select * from students';
echo ' id '.'____________'.'name'.'____________'.'sex'."<br>";
foreach ($pdo->query($sql) as $val){
echo $val['id'].'____________'.$val['name'].'____________'.$val['sex']."<br>";
}
?>
修改数据
效果如图:

删除数据:
<?php
//连接数据库
try {
$pdo = new PDO("mysql:host=localhost;dbname=phptest", "root", "20125202");
}
catch (PDOException $e){
die("数据库连接失败".$e->getMessage());
}
//插入语句
//$sql = "insert into students values('20125203','tony','female')";
//修改语句
//$sql = "update students set sex='male' where id='20125203'";
//删除语句
$sql = "delete from students where id='20125203'";
//执行语句、解析数据
$res = $pdo->exec($sql);
if ($res){
echo "删除成功!</br>";
}
//查询结果
$sql = 'select * from students';
echo ' id '.'____________'.'name'.'____________'.'sex'."<br>";
foreach ($pdo->query($sql) as $val){
echo $val['id'].'____________'.$val['name'].'____________'.$val['sex']."<br>";
}
?>
删除数据
效果如图:

以上就是PDO的基本使用方法与增删查改等操作。
初识PHP(四)PDO对象配置于使用的更多相关文章
- PHP中PDO的配置与说明
住[PDO是啥] PDO是PHP5新加入的一个重大功能,因为在PHP5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll.php_pgsql.dll ...
- flask session,蓝图,装饰器,路由和对象配置
1.Flask 中的路由 *endpoint - url_for 反向地址 *endpoint 默认是视图函数名 *methods 指定视图函数的请求方式,默认GET defaults={& ...
- Flask(2)- 装饰器的坑及解决办法、flask中的路由/实例化配置/对象配置/蓝图/特殊装饰器(中间件、重定义错误页面)
一.装饰器的坑以及解决方法 1.使用装饰器装饰两个视图函数,代码如下 from flask import Flask, redirect, render_template, request, sess ...
- PDO 学习与使用 ( 一 ) :PDO 对象、exec 方法、query 方法与防 SQL 注入
1.安装 PDO 数据库抽象层 PDO - PHP Data Object 扩展类库为 PHP 访问数据库定义了一个轻量级的.一致性的接口,它提供了一个数据访问抽象层,针对不同的数据库服务器使用特定的 ...
- CentOS 7 学习(四)Git配置(一)
CentOS 7 学习(四)Git配置(一) 1.对于版本管理系统,目前常用的是Subverion和Git,Subversion是集中式版本管理系统中最好的,所有人的代码都要提交到服务器上,如果要知道 ...
- 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入
使用react全家桶制作博客后台管理系统 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...
- 第四章 INI配置——《跟我学Shiro》
转发地址:https://www.iteye.com/blog/jinnianshilongnian-2020820 第四章 INI配置——<跟我学Shiro> 博客分类: 跟我学Shir ...
- js上 十四、对象
十四.对象 #1.初识对象 什么是对象? 在js中,一切皆是对象. 对象,生活中可见和不可见的东西,在世界中,客观存在的都是一个对象. 桌子,笔记本,手机,人. 在日常生活中,我们是如何来描述这个对象 ...
- 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
随机推荐
- 在fedora 18中将普通用户设置为sudo权限
将一般的用户加入sudo组is not in the sudoers file. This incident will be reported 解决方法 在一般用户下执行sudo命令提示xxx is ...
- java 集合之HashMap
原文出处http://zhangshixi.iteye.com/blog/672697 1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操 ...
- 浏览器对js运行时间的限制
浏览器对js的运行时间进行了限制 1.调用栈尺寸限制 目前大部分的主流浏览器的调用栈尺寸都在10000以上.超过这个尺寸就会报栈溢出的错误 2.长时间脚本限制 浏览器记录一个脚本的运行时间,一旦达到这 ...
- AngularJS』一点小小的理解
『AngularJS』一点小小的理解 AngularJS 是一个前端的以Javascript为主的MVC框架.与AngularJS相类似的还有EmberJS. 随着时代在进步,各种各样的开发理念与 ...
- 【BZOJ2815】[ZJOI2012]灾难 拓扑排序+LCA
[BZOJ2815][ZJOI2012]灾难 题目描述 阿米巴是小强的好朋友. 阿米巴和小强在草原上捉蚂蚱.小强突然想,果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从 ...
- Windows Phone 7 检查手机网络
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Wi ...
- 最小树形图(poj3164)
Command Network Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 12834 Accepted: 3718 ...
- postgresql----唯一索引,表达式索引,部分索引
一.唯一索引 唯一索引字面上理解就是在索引上增加唯一约束,不允许出现索引值相同的行,目前只有Btree索引可以声明唯一索引,唯一键会自动创建唯一索引. 测试表: test=# create table ...
- 04.ActiveMQ与Spring JMS整合
SpringJMS使用参考:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html ...
- 07.Curator计数器
这一篇文章我们将学习使用Curator来实现计数器.顾名思义,计数器是用来计数的,利用ZooKeeper可以实现一个集群共享的计数器.只要使用相同的path就可以得到最新的计数器值,这是由Zo ...