正在加载....
厦门网站建设-世敏网络科技
  • 当前位置: 首页 > 建站百科 > 常见问题
  • PDO连接Mysql数据库方法

    时间:2020-10-30 浏览量:

    1、什么是PDO?

     php data object ,php数据对象,PHP 数据对象 (PDO) 扩展为PHP操作多种数据库定义了一个轻量级的一致接口。实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能。 注意利用 PDO 扩展自身并不能实现任何数据库功能;必须使用一个 具体数据库的 PDO 驱动 来访问数据库服务。

    PDO 提供了一个 数据访问 抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。 PDO 不提供 数据库 抽象层;它不会重写 SQL,也不会模拟缺失的特性。如果需要的话,应该使用一个成熟的抽象层。

    2、为什么要使用PDO?

    更换其他数据库的时候无需更换代码,提高了程序运行效率

    3、PDO的特点是什么?

    (1)、编码的一致性    

    (2)、灵活性  

    (3)、面向对象特性   

    (4)、高性能

    使用PDO的好处是:从根本上防止SQL注入

    4、如何使用PDO?

    修改 php.ini中的配置  添加MYSQL的PDO扩展

    (1)  extension=php_pdo_mysql.dll   去前面的分号

    (2) 扩展目录中要有相应的扩展文件

    (3) PDO连接不同的数据库,要有不同的数据库驱动文件即我们所加入配置文件的扩展

    (4) 重新启动Apache使配置生效


      使用PDO连接Mysql数据库实例:

    <?php
    header("content-type:text/html;charset=utf-8");
    define('DB_TYPE','mysql');//定义数据库类型常量
    define('DB_HOST','127.0.0.1');//定义主机地址常量
    define('DB_PORT','3306');//定义连接数据库端口号常量
    define('DB_CHARSET','utf8');//定义数据库字符集常量
    define('DB_USER','root');//定义数据库连接用户名常量
    define('DB_PASS','root');//定义数据库连接密码常量
    define('DB_NAME','test');//定义数据库名称常量
    define('DB_DSN',DB_TYPE.':host='.DB_HOST.';port='.DB_PORT.';dbname='.DB_NAME.';charset='.DB_CHARSET);//定义DSN常量
    
    try{
    	$pdo = new PDO(DB_DSN,DB_USER,DB_PASS,[PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING]);
    	//设置sql语句查询如果出现问题 就会抛出异常如下单独设置也可以
    	//$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }catch(Exception $e){
    	echo $e->getMessage();
    }catch(Throwable $e){
    	echo $e->getMessage();
    }
    
    //查询数据
    $state = $pdo->query("select * from admin_user where id = 1"); 
    //query执行一条SQL语句,如果通过,则返回一个PDOStatement对象,可以直接遍历这个返回的记录集 (query用于select)
    
    $res = $state->fetch(PDO::FETCH_ASSOC);      // 获取结果集中的一行数据
    
    $res = $state->fetchAll(PDO::FETCH_ASSOC);  //获取结果集中的所有数据
    
    //添加数据
     $row1 = $pdo->exec("insert into admin_user(user_name, password) values('jack', 'adsfadf')"); 
    //exec主要执行没有返回结果集的操作 PDO::exec执行一条SQL语句,
    //并返回受影响的行数。此函数不会返回结果集合.。 
    //(exec用于insert、delete、update)
    
    //修改数据
    $row2 = $pdo->exec("update admin_user set user_name = 'peter' where user_id = 50");
    
    //删除数据
    $row3 = $pdo->exec("delete from  admin_user where user_id = 50");        
    var_dump($res,$row1,$row2,$row3);
    
    //预处理(防止SQL注入)
    $state = $pdo->prepare("select * from tp_admin_user where user_id = ?");           
    $state->execute([2]); //绑定参数          
    $row = $state->fetch(PDO::FETCH_ASSOC); // 获取结果集中的一条
    $rows = $state->fetchAll(PDO::FETCH_ASSOC); // 获取结果集中的所有
    echo "<pre>";          
    var_dump($rows);
    ?>


    加载中~
    加载中~

    您已成功复制微信号,去微信立即添加好友!

    点击下方复制按钮,复制微信号!

    jzm866081

    https://www.xmsmwl.cn
    厦门世敏网络科技有限公司

    点击这里给我发消息
    嘿!有什么能帮到您的吗?