最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • PDO的介绍及使用

    正文概述 转载于:掘金(陆小天)   2021-07-25   430

    一、PDO介绍

    1.1 链接数据库方式

    方法一:mysql扩展【这种方式php7已经淘汰】 方法二:mysqli扩展 方法三:PDO扩展

    1.2 PDO介绍

    PDO(PHP Data Object)扩展为PHP访问各种数据库提供了一个轻量级,一致性的接口。无论访问什么数据库,都可以通过一致性的接口去操作。

    1.2.1 开启PDO扩展

    开启PDO连接MySQL扩展

    1.3 PDO核心类

    1、PDO类:表示PHP和数据库之间的一个连接 2、PDOStatement类 第一:表示执行数据查询语句(select,show)后的相关结果集 第二:预处理对象 3、PDOException类:表示PDO的异常

    1.4 实例化PDO对象

    语法:

    1.4.1 DSN

    DSN:data source name,数据源名称,包含的是连接数据库的信息,格式如下:

    数据库类型:

    1.4.2 实例化PDO

    实例化PDO的过程就是连接数据库的过程 例:

    <?php 
    $dsn='mysql:host=localhost;port=3306;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    var_dump($pdo);
    

    效果: PDO的介绍及使用

    1.4.3 注意事项

    1、如果连接的是本地数据库,host可以省略。

    <?php 
    $dsn='mysql:port=3306;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    var_dump($pdo);
    

    效果如上: PDO的介绍及使用 2、如果默认端口号为3306的话,port也可以省略。

    <?php 
    $dsn='mysql:dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    var_dump($pdo);
    

    效果如上: PDO的介绍及使用 3、charset也省略,如果省略,使用的是默认字符编码。

    <?php 
    $dsn='mysql:dbname=data;';
    $pdo=new PDO($dsn, 'root', 'root');
    var_dump($pdo);
    

    效果如上: PDO的介绍及使用 4、dbname也可以省略,如果省略就没有选择数据库: 例:

    <?php 
    $dsn='mysql:';
    $pdo=new PDO($dsn, 'root', 'root');
    var_dump($pdo);
    

    效果: PDO的介绍及使用 5、host、port、dbname、charset不区分大小写,没有先后顺序。 例:

    <?php 
    $dsn='mysql:port=3306;host=localhost;dbName=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    var_dump($pdo);
    

    效果: PDO的介绍及使用

    二、使用PDO

    2.1 执行数据操作语句

    方法:$pdo->exec($sql),执行数据增、删、改语句,执行成功返回受影响的记录数,如果SQL语句错误返回false。

    2.1.1、增加

    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    //  2、执行数据增加操作语句 
    if ($pdo->exec("insert into shows values (null, 'kk', 'kkkkk', CURRENT_TIMESTAMP)"))
        echo '自动增长的编号是:'.$pdo->lastInsertId(),'<br>';
    

    效果: PDO的介绍及使用

    2.1.2、改

    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行修改
    echo $pdo->exec('update shows set  where id=2');
    

    效果: PDO的介绍及使用 PDO的介绍及使用

    2.1.3、删

    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行删除
    echo $pdo->exec('delete from shows where id=2');
    

    效果: PDO的介绍及使用 PDO的介绍及使用

    2.1.4、查:

    2.1.4.1、返回二维数组

    1、返回关联和索引数组
    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    var_dump($stmt);
    echo '<br>';
    // 3、获取数据
    // 3.1 获取二维数组
    // $rs = $stmt->fetchAll(PDO::FETCH_BOTH) // 默认返回关联和索引
    $rs = $stmt->fetchAll(PDO::FETCH_BOTH); // 返回关联和索引数组
    echo '<pre>';
    var_dump($rs);
    
    

    效果: PDO的介绍及使用


    2、返回索引数组
    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    var_dump($stmt);
    echo '<br>';
    // 3、获取数据
    // 3.1 获取二维数组
    // $rs = $stmt->fetchAll(PDO::FETCH_BOTH) // 默认返回关联和索引
    $rs = $stmt->fetchAll(PDO::FETCH_NUM); // 返回索引数组
    echo '<pre>';
    var_dump($rs);
    

    效果: PDO的介绍及使用


    3、返回关联数组
    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    var_dump($stmt);
    echo '<br>';
    // 3、获取数据
    // 3.1 获取二维数组
    // $rs = $stmt->fetchAll() // 默认返回关联和索引
    $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); // 返回关联数组数组
    echo '<pre>';
    var_dump($rs);
    

    效果: PDO的介绍及使用


    4、返回对象数组
    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    var_dump($stmt);
    echo '<br>';
    // 3、获取数据
    // 3.1 获取二维数组
    // $rs = $stmt->fetchAll() // 默认返回关联和索引
    $rs = $stmt->fetchAll(PDO::FETCH_OBJ); // 返回对象数组
    echo '<pre>';
    var_dump($rs);
    

    效果: PDO的介绍及使用


    2.1.4.2、返回一维数组

    1、默认返回关联和索引数组

    例:

    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    var_dump($stmt);
    echo '<br>';
    // 3、获取数据
    // 3.2 获取一维数组
    $rs=$stmt->fetch(); // 默认返回关联和索引数组
    
    echo '<pre>';
    var_dump($rs);
    

    效果: PDO的介绍及使用


    2、取索引数组

    例:

    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    var_dump($stmt);
    echo '<br>';
    // 3、获取数据
    // 3.2 获取一维数组
    $rs=$stmt->fetch(PDO::FETCH_NUM); // 默认返回索引数组,取一条,取完以后指针下移
    
    echo '<pre>';
    var_dump($rs);
    

    效果: PDO的介绍及使用


    3、通过循环获取所有数据

    例:

    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    var_dump($stmt);
    echo '<br>';
    // 3、获取数据
    // 3.2 获取一维数组
    while($row=$stmt->fetch(PDO::FETCH_ASSOC)) {
        $rs[]=$row;
    }
    
    echo '<pre>';
    var_dump($rs);
    

    效果: PDO的介绍及使用


    2.1.4.3、匹配列

    例:

    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    // 3、获取数据
    // 3.3 匹配列
    echo $stmt->fetchColumn(); // 默认获取当前行的第0列
    // echo $stmt->fetchColumn(1); // 获取当前行第一列
    echo '<pre>';
    

    效果: PDO的介绍及使用


    2.1.4.4、匹配总行数、总列数

    例:

    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    // 3、获取数据
    // 3.4 总行数、总列数
    echo '总行数:'.$stmt->rowCount(),'<br>';
    echo '总列数:'.$stmt->columnCount(),'<br>';
    

    效果: PDO的介绍及使用


    三、遍历PDOStatement

    例:

    <?php 
    // 1、实例化PDO
    $dsn='mysql:port=3306;host=localhost;dbname=data;charset=utf8';
    $pdo=new PDO($dsn, 'root', 'root');
    
    // 2、执行查询
    $stmt = $pdo->query('select * from shows');
    
    // PDOStatement对象中是有迭代器的
    foreach($stmt as $row) {
        echo $row['id'],'-',$row['title'],$row['content'],'-',$row['createTime'];
        echo '<br>';
    }
    
    

    效果: PDO的介绍及使用



    起源地下载网 » PDO的介绍及使用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元