加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

PDO 连接 MySQL教程

发布时间:2023-09-18 15:12:19 所属栏目:MySql教程 来源:
导读:PDO 连接 MySQL

1、什么是 PDO?

php data object ,php 数据对象,PHP 数据对象 (PDO) 扩展为 PHP 操作多种数据库定义了一个轻量级的一致接口。实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作
PDO 连接 MySQL
 
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 使配置生效
 
5、使用 PDO 的基本格式
 
 (1) 格式

$host = "127.0.0.1";  // MySQL所在的服务器的IP
 
     $port = "3306";       // MySQL的端口
 
     $username= "root";    //数据库账号
 
     $password = "123456";  //数据库密码
 
     $dbname = "test";     // 数据库名称
 
     $charset = "utf8";   // 编码集
 
     $dsn = "mysql:dbname=$dbname;host=$host";    // $dsn =“数据库类型:dbname=数据库名;host=数据库的域名”;   
 
            备注:  dsn:  data  sourse  name 数据的来源  -> 要找的数据库是哪台电脑哪个数据库

(2) 声明对象:         
 
$object = new PDO($dsn,$user,$password);
 
6、案例:       
 
 主要思路:
 
                         1)连接数据库、数据库的用户名、数据库的密码
 
                         2)生成 PDO 对象
 
                         3)执行 SQL 语句
 
$host = "127.0.0.1";
 
                     $port = "3306"; //
 
                     $username = "root";
 
                     $password = "asdf1234";
 
                     $dbname = "tperp";
 
                     $charset = "utf8";
 
                     $dsn = "mysql:dbname=$dbname;host=$host";
 
       try{
 
             $pdo = new Pdo($dsn, $username, $password);
 
             $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    // 设置sql语句查询如果出现问题 就会抛出异常
 
             set_exception_handler("cus_exception_handler");
 
         } catch(PDOException $e){
 
                die("连接失败: ".$e->getMessage());
 
         }
 
         function cus_exception_handler($e)
 
        {
 
               die("sql 异常: ".$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([49]);
 
           $row = $state->fetch(PDO::FETCH_ASSOC); // 获取结果集中的一条
 
           $rows = $state->fetchAll(PDO::FETCH_ASSOC); // 获取结果集中的所有
 
           echo "<pre>";
 
           var_dump($rows);
 
 
 
 
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章