• 我懒蛋又回来了!-PDO


      hi

    好几天了吧,脚伤都有一周了的。玩乐的这么久才发觉,对于年轻人,或者更具体的,对我而言,受伤最难受的不是受伤瞬间的身痛,不是随之而来的心理负担,不是独自一人远在他乡的孤独无助之感;最伤的是斗志,是受伤后提不起来的消沉意志,是破罐子破摔的糜烂心气,或者,是问题本质的内心莫名的恐惧。

    还好,虽然这么多天没动,恐惧的双刃剑还是刺痛尚存的责任心、内疚感,我还能继续写博客,活活活活~~

    争取一天一门课,回家之前能有所成,一起加油!

    新人新气象新课程~

    1、PDO

    一、PDO简介

    1.1 PDO

    PHP Data Object,数据库访问抽象层,统一各种数据库的访问接口。

    提高数据库之间的移植性以及可维护性——手段是抽象度的提高,访问接口的统一。

    不管用什么数据库,可以用同一个API进行编写。

    --特性

    编码一致性;

    灵活性;

    高性能;(c语言编写的,编译为PHP)

    OOP。

    --支持的库

    PDO只是一个抽象的接口,对该接口的操作还需要支持各种库。

    这里我们用的是PHP语言,所以用PDO MySQL。

    1.2 配置与启用

    在PHP的配置文件进行配置:

    开启php_pdo.dll拓展-》开启相对应的数据库的拓展php_pdo_mysql.dll-》phpinfo看一下。

    当然不同的环境(集成)是不一样的,自行百度吧。

    1.3 连接数据库

    --方式

    参数形式;

    URI形式;

    配置文件形式。php.ini

    --栗子

    <?php
    /*
    * PDO实现连接数据库
    */

    //参数形式
    try {
    $dsn='mysql:localhost;dbname=imooc_pdo';//数据源
    $username='root';
    $passwd='';
    $pdo=new PDO($dsn, $username, $passwd); //pdo对象
    var_dump($pdo);
    }catch (PDOException $e){ //得到错误信息
    echo $e->getMessage();
    }

    //URI形式
    try {
    $dsn='uri:C:wampwwwPDO_learningdsn.txt';//区别就在于数据源获取
    $username='root';
    $passwd='';
    $pdo=new PDO($dsn, $username, $passwd);
    var_dump($pdo);
    }catch (PDOException $e){ //得到错误信息
    echo $e->getMessage();
    }

    //配置文件形式,首先要在php.ini中写pdo.dsn.imooc="mysql:host=localhost;dbname=imooc_pdo"
    try {
    $dsn='imooc';//区别就在于数据源获取
    $username='root';
    $passwd='';
    $pdo=new PDO($dsn, $username, $passwd);
    var_dump($pdo);
    }catch (PDOException $e){ //得到错误信息
    echo $e->getMessage();
    }

    基本流程就是写好参数,然后new一个PDO对象即可。参数有数据源信息,用户名,密码三个。

    数据源:data source name:驱动器名称:主机;数据库;(各种数据库这里的语法是不同的,自查)。

    可以看到,三种形式的区别就在于取数据源的方式不同。

    建议通过参数形式连接,当然,随你。

    二、PDO对象的使用(增删改查)

    2.1 exec()

    执行一条SQL语句,并返回其受影响的行数,如果没有受影响的记录返回为0。

    注意,exec对select没有用。

    --栗子:建表&增

    <?php
    /*
    * exec()的使用案例
    */

    $pdo=new PDO('mysql:host=localhost;dbname=imooc','root','');
    $sql=<<<EOF
    CREATE TABLE IF NOT EXISTS user(
    id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL UNIQUE,
    password CHAR(32) NOT NULL,
    email VARCHAR(30) NOT NULL
    );
    EOF;
    $pdo->exec('use imooc_pdo');
    $result0=$pdo->exec($sql);
    var_dump($result0);

    $insert='insert user(username,password,email) values("Kinga","'.md5('king').'","shit@shit.com")';
    $result1=$pdo->exec($insert);
    var_dump($result1);

    但是,如果重复执行的话,会返回false。(?我也不知道为什么,谁能告诉我)

    同样的删除也是可以的,但是注意查select是不能用exec执行的

    每次从exec的返回结果进行结果的判定就行。

    ---------------------------------------------------------------------

    哎呀,我真欠打,看了两集朝廷的综艺节目,时间哗哗的。。明天加油吧。

  • 相关阅读:
    Oracle表分区的优缺点及有哪些分区类型
    Oracle RAC中 并发控制健忘症脑裂IO隔离
    Linux中的清空操作
    Shell脚本查看linux系统性能瓶颈
    AtCoder Grand Contest 020 & 021
    [省选集训2022] 模拟赛13
    AtCoder Grand Contest 015
    #10 CF708E & CF643F
    #9 CF671D & CF671E & CF643D
    [省选集训2022] 模拟赛14
  • 原文地址:https://www.cnblogs.com/andy1202go/p/5057296.html
Copyright © 2020-2023  润新知