初识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();        //解析数据

  下面举例:  

  数据库原始数据如下:

  

查询数据:

 1 <?php
 2     //连接数据库
 3     try {
 4         $pdo = new PDO("mysql:host=localhost;dbname=phptest", "root", "20125202");
 5     }
 6     catch (PDOException $e){
 7         die("数据库连接失败".$e->getMessage());
 8     }
 9     //查询语句
10     $sql = ‘select * from students‘;
11     //执行语句、解析数据
12     echo ‘  id  ‘.‘____________‘.‘name‘.‘____________‘.‘sex‘."<br>";
13     foreach ($pdo->query($sql) as $val){
14         echo $val[‘id‘].‘____________‘.$val[‘name‘].‘____________‘.$val[‘sex‘]."<br>";
15     }
16 ?>

效果如图:

插入数据:

 1 <?php
 2     //连接数据库
 3     try {
 4         $pdo = new PDO("mysql:host=localhost;dbname=phptest", "root", "123");
 5     }
 6     catch (PDOException $e){
 7         die("数据库连接失败".$e->getMessage());
 8     }
 9     //插入语句
10     $sql = "insert into students values(‘20125203‘,‘tony‘,‘female‘)";
11     //执行语句、解析数据
12     $res = $pdo->exec($sql);
13     if ($res){
14         echo "插入成功!</br>";
15     }
16     //查询结果
17     $sql = ‘select * from students‘;
18     echo ‘  id  ‘.‘____________‘.‘name‘.‘____________‘.‘sex‘."<br>";
19     foreach ($pdo->query($sql) as $val){
20         echo $val[‘id‘].‘____________‘.$val[‘name‘].‘____________‘.$val[‘sex‘]."<br>";
21     }
22 ?>

效果如图:

修改于删除数据操作类似

修改数据:

 1 <?php
 2     //连接数据库
 3     try {
 4         $pdo = new PDO("mysql:host=localhost;dbname=phptest", "root", "123");
 5     }
 6     catch (PDOException $e){
 7         die("数据库连接失败".$e->getMessage());
 8     }
 9     //插入语句
10     //$sql = "insert into students values(‘20125203‘,‘tony‘,‘female‘)";
11     //修改语句
12     $sql = "update students set sex=‘male‘ where id=‘20125203‘";
13     //执行语句、解析数据
14     $res = $pdo->exec($sql);
15     if ($res){
16         echo "修改成功!</br>";
17     }
18     //查询结果
19     $sql = ‘select * from students‘;
20     echo ‘  id  ‘.‘____________‘.‘name‘.‘____________‘.‘sex‘."<br>";
21     foreach ($pdo->query($sql) as $val){
22         echo $val[‘id‘].‘____________‘.$val[‘name‘].‘____________‘.$val[‘sex‘]."<br>";
23     }
24 ?>

修改数据

效果如图:

删除数据:

 1 <?php
 2     //连接数据库
 3     try {
 4         $pdo = new PDO("mysql:host=localhost;dbname=phptest", "root", "20125202");
 5     }
 6     catch (PDOException $e){
 7         die("数据库连接失败".$e->getMessage());
 8     }
 9     //插入语句
10     //$sql = "insert into students values(‘20125203‘,‘tony‘,‘female‘)";
11     //修改语句
12     //$sql = "update students set sex=‘male‘ where id=‘20125203‘";
13     //删除语句
14     $sql = "delete from students where id=‘20125203‘";
15     //执行语句、解析数据
16     $res = $pdo->exec($sql);
17     if ($res){
18         echo "删除成功!</br>";
19     }
20     //查询结果
21     $sql = ‘select * from students‘;
22     echo ‘  id  ‘.‘____________‘.‘name‘.‘____________‘.‘sex‘."<br>";
23     foreach ($pdo->query($sql) as $val){
24         echo $val[‘id‘].‘____________‘.$val[‘name‘].‘____________‘.$val[‘sex‘]."<br>";
25     }
26 ?>

删除数据

效果如图:

以上就是PDO的基本使用方法与增删查改等操作。

时间: 2024-12-28 16:38:32

初识PHP(四)PDO对象配置于使用的相关文章

PHP中PDO的配置与说明

住[PDO是啥] PDO是PHP5新加入的一个重大功能,因为在PHP5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll.php_pgsql.dll.php_mssql.dll.php_sqlite.dll等等扩展来连接MySQL.PostgreSQL.MSSQLServer.SQLite,同样的,我们必须借助ADOdb.PEAR:B.PHPlib:B之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够我们直接用C/C+

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

1.安装 PDO 数据库抽象层 PDO - PHP Data Object 扩展类库为 PHP 访问数据库定义了一个轻量级的.一致性的接口,它提供了一个数据访问抽象层,针对不同的数据库服务器使用特定的 PDO 驱动程序访问,如图: Windows 环境下 PHP 5.1 以上版本通过编辑 php.ini文件来安装 PDO:去掉 extension=php_pdo.dll 前面的 ; 如果使用的数据库是 MySQL ,在 php.ini 文件中加载 MySQL 的 PDO 驱动: 添加 exten

初探swift语言的学习笔记四(类对象,函数)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! swift扩展了非常多功能和属性,有些也比較奇P.仅仅有慢慢学习,通过经验慢慢总结了. 以下将初步学习一下类的写法. 码工,最大爱好就是看码,而不是文字,太枯燥. // // computer.swift // swiftDemo // // C

Linux基础初识(四)

Linux基础初识(四) 一.1. 系统监视和进程控制工具-top和free1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.2) 了解使用top命令列出系统状态时,系统默认每5秒刷新一下屏幕上的显示结果. 1. 第一行是任务队列信息 12:38:33 当前时间 up 50days 系统运行时间,格式为时:分 1 user 当前登录用户数 load average: 0.06, 0.60, 0.48

Jsp(3):内置对象和四种域对象的理解

由来:在jsp开发中,会频繁使用到一些对象 .例如HttpSession,ServletContext,ServletContext,HttpServletRequet.所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,开发者只需要直接使用这些对象调用方法即可!这些创建好的对象就叫内置对象,一共有九个. 内置对象名 类型 request HttpServletRequest  response  HttpServletResponse config Servle

Lync Server 2010 安装部署系列四:安装&配置证书服务器

1.打开"服务器管理器" 2.添加角色 3.单击下一步按钮 4.勾选"Active Directory证书服务" 5.单击"下一步"按钮: 6.勾选"证书颁发机构"和"证书颁发机构Web注册",单击"下一步"按钮: 7.勾选"企业",单击"下一步"按钮: 8.勾选"根CA",单击"下一步"按钮: 9.勾选&q

PDO对象

一.PDO对象 1.调整PDO行为 2.设置错误处理模式 3.使用POD执行SQL语句 <?php //写一个data.txt 文件,每一行都是一个user数据,如何遍历它并把数据插入到数据库中 try { $dsn = "mysql:host=localhost; dbname=jkxy"; $name = "root"; // 数据库的登录用户名 $pwd = ""; // 数据库的登录密码 $pdo = new PDO ( $dsn,

C++ Primer 学习笔记_23_类与数据抽象(9)--四种对象生存期和作用域、static 用法总结

C++ Primer 学习笔记_23_类与数据抽象(9)--四种对象生存期和作用域.static 用法总结 前言: 从上图可知,程序占用的内存被分了以下几部分. (1).栈区(stack) 存放函数的参数值,局部变量的值等,内存的分配是连续的.栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁,其特点是效率高,但空间大小有限 注意:通常栈空间容量比较小,一般是1MB-2MB,所以体积比较大的对象不适合在栈中分配. (2).堆区(heap) 由malloc系列函数或new操作符

Effective C++ 条款四 确定对象被使用前已被初始化

1.对于某些array不保证其内容被初始化,而vector(来自STL)却有此保证. 2.永远在使用对象前初始化.对于无任何成员的内置类型,必须手工完成.      int x = 0;      const int * p = &x; 3.不要混淆赋值与初始化的区别.一般初始化在定义的时候一起进行.而赋值是在定义之后的动作.      比如说在某一个类中的构造函数中,函数的行为都是赋值操作,而非初始化操作.      一般来说,对象的成员变量的初始化动作发生在进入构造函数本体之前.所以,我们一