一、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对象配置于使用的更多相关文章

  1. PHP中PDO的配置与说明

    住[PDO是啥] PDO是PHP5新加入的一个重大功能,因为在PHP5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll.php_pgsql.dll ...

  2. flask session,蓝图,装饰器,路由和对象配置

    1.Flask 中的路由   *endpoint - url_for 反向地址  *endpoint 默认是视图函数名  *methods 指定视图函数的请求方式,默认GET  defaults={& ...

  3. Flask(2)- 装饰器的坑及解决办法、flask中的路由/实例化配置/对象配置/蓝图/特殊装饰器(中间件、重定义错误页面)

    一.装饰器的坑以及解决方法 1.使用装饰器装饰两个视图函数,代码如下 from flask import Flask, redirect, render_template, request, sess ...

  4. PDO 学习与使用 ( 一 ) :PDO 对象、exec 方法、query 方法与防 SQL 注入

    1.安装 PDO 数据库抽象层 PDO - PHP Data Object 扩展类库为 PHP 访问数据库定义了一个轻量级的.一致性的接口,它提供了一个数据访问抽象层,针对不同的数据库服务器使用特定的 ...

  5. CentOS 7 学习(四)Git配置(一)

    CentOS 7 学习(四)Git配置(一) 1.对于版本管理系统,目前常用的是Subverion和Git,Subversion是集中式版本管理系统中最好的,所有人的代码都要提交到服务器上,如果要知道 ...

  6. 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入

    使用react全家桶制作博客后台管理系统   前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...

  7. 第四章 INI配置——《跟我学Shiro》

    转发地址:https://www.iteye.com/blog/jinnianshilongnian-2020820 第四章 INI配置——<跟我学Shiro> 博客分类: 跟我学Shir ...

  8. js上 十四、对象

    十四.对象 #1.初识对象 什么是对象? 在js中,一切皆是对象. 对象,生活中可见和不可见的东西,在世界中,客观存在的都是一个对象. 桌子,笔记本,手机,人. 在日常生活中,我们是如何来描述这个对象 ...

  9. 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)

    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

随机推荐

  1. js 数组函数

    Array.prototype.join Array.prototype.reverse Array.prototype.sort Array.prototype.concat Array.proto ...

  2. FlashDevelop导入swc库

    项目不是AS项目,而是基于FlashIDE. 一 将SWC放入项目lib文件夹下 二 选择lib文件夹,右键,选择添加到库 三  FlashIDE中选择 文件-ActionScript设置 四 选择浏 ...

  3. ios8 gps定位不好用

    这样让iOS8正常使用定位功能呢? <1>你需要在info.plist表里面添加两条变量 在Info.plist中加入两个缺省没有的字段 NSLocationAlwaysUsageDesc ...

  4. Hive sql语法详解

      Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQ ...

  5. vue 引入通用 css

    1.在入口 js 文件 main.js 中引入,一些公共的样式文件,可以在这里引入. import Vue from 'vue' import App from './App' // 引入App这个组 ...

  6. 8.ajax查询数据

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  7. 沈阳网络赛F-Fantastic Graph【贪心】or【网络流】

    "Oh, There is a bipartite graph.""Make it Fantastic." X wants to check whether a ...

  8. try...finally的妙用

    受博文 C#中Finally的一个不太常见的用法 的启发,正好在开发中遇到这样一段代码: public bool ChangeBlogApp(Guid userID, string oldBlogAp ...

  9. RSA算法原理与加密解密 求私钥等价求求模反元素 等价于分解出2个质数 (r*X+1)%[(p-1)(q-1)]=0

    Rsapaper.pdf http://people.csail.mit.edu/rivest/Rsapaper.pdf [概述Abstract 1.将字符串按照双方约定的规则转化为小于n的正整数m, ...

  10. qt——QFileDialog使用对话框选取本地文件

    QT在学习的过程中总是遇到各种问题,没有人解答,只有自己在研究并且在网上搜索一些资料,从初学到现在入门,一直都是这样走过来的,虽然走得很艰难,但是每一个阶段都会有所收获,最近在做一个图片浏览模块的功能 ...