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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-05-20 11:54:02
オリジナル
1374 人が閲覧しました

一、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> ?>
ログイン後にコピー

 

效果如图:

 

插入数据:

<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> ?>
ログイン後にコピー

效果如图:

修改于删除数据操作类似

修改数据:

<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> ?>
ログイン後にコピー
修改数据

效果如图:

删除数据:

<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> ?>
ログイン後にコピー
删除数据

效果如图:

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート