热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

初识PHP(四)PDO对象配置于使用-奇点怎么编码

初识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'."
"; 13 foreach ($pdo->query($sql) as $val){ 14 echo $val['id'].'____________'.$val['name'].'____________'.$val['sex']."
"; 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 "插入成功!
"; 15 } 16 //查询结果 17 $sql = 'select * from students'; 18 echo '  id  '.'____________'.'name'.'____________'.'sex'."
"; 19 foreach ($pdo->query($sql) as $val){ 20 echo $val['id'].'____________'.$val['name'].'____________'.$val['sex']."
"; 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 "修改成功!
"; 17 } 18 //查询结果 19 $sql = 'select * from students'; 20 echo '  id  '.'____________'.'name'.'____________'.'sex'."
"; 21 foreach ($pdo->query($sql) as $val){ 22 echo $val['id'].'____________'.$val['name'].'____________'.$val['sex']."
"; 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 "删除成功!
"; 19 } 20 //查询结果 21 $sql = 'select * from students'; 22 echo '  id  '.'____________'.'name'.'____________'.'sex'."
"; 23 foreach ($pdo->query($sql) as $val){ 24 echo $val['id'].'____________'.$val['name'].'____________'.$val['sex']."
"; 25 } 26 ?>

删除数据

效果如图:

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


推荐阅读
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
author-avatar
Mayuki命_103
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有