Heim > php教程 > php手册 > 初识PHP(四)PDO对象配置于使用 - 奇点怎么编码

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-05-20 11:54:02
Original
1373 Leute haben es durchsucht

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

 

  下面举例:  

   数据库原始数据如下:

  

查询数据:

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

 

效果如图:

 

插入数据:

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

效果如图:

修改于删除数据操作类似

修改数据:

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

效果如图:

删除数据:

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

效果如图:

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

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage