PDO

1、什么是PDO?

PDO是PHP data Object 提供了PHP操作多种数据库的统一的借口。


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)、 $dsn =“数据库类型:
                    dbname=数据库名;host=数据库的域名”;
                    $user = "数据库的用户名";
                    $password = "数据库的密码";

    例如:   

                    $dsn = "mysql:dbname=test;host=127.0.0.1";
                     $user = "root";
                     $password="123456";

(2)、声明对象:

                $object = new PDO($dsn,$user,$password);


6、添加

    (1)连接数据库、数据库的用户名、数据库的密码

    (2)生成PDO对象

    (3)执行添加

  1. $db = new PDO($dsn, $user, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8';")); //初始化一个PDO对象
  2. echo "连接成功<br/>";
  3. $count = $db->query("select * from user where name='$name' and pwd='$password'");
  4. $count->setFetchMode(PDO::FETCH_ASSOC);
  5. $result_arr = $count->fetchAll();
  6. print_r($result_arr);
  7. if(!empty($result_arr)){
  8. echo "yes";
  9. }else{
  10. echo "no";
  11. }
  12. $dbh = null;

查询    
    (1)连接数据库、数据库的用户名、数据库的密码
    (2)生成PDO对象
    (3)执行查询
  1. header('content-type:text/html;charset=utf8');
  2. //连接数据库
  3. $dsn="mysql:dbname=test;host=127.0.0.1";
  4. //数据库的用户名
  5. $user="root";
  6. //数据库的密码
  7. $password="123456";
  8. //生成PDO对象
  9. $object = new PDO($dsn,$user,$password);
  10. $sql="select * from student";
  11. $result = $object->query($sql);
  12. while($arr=$result->fetch()){
  13. print_r($arr);
  14. }



### PHP PDO 使用指南 #### 什么是PDO? PHP 数据对象 (PDO) 是一种用于访问数据库的轻量级一致接口。它允许开发者通过统一的方式与不同类型的数据库交互,而无需关心底层的具体实现细节[^4]。 #### 如何实例化PDO对象? 要创建一个PDO连接,需提供数据源名称(DSN)、用户名和密码。以下是典型的PDO实例化代码示例: ```php try { $dsn = 'mysql:host=localhost;dbname=test'; $username = 'root'; $password = ''; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]; $pdo = new PDO($dsn, $username, $password, $options); } catch (\PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ``` 此代码片段展示了如何设置错误模式以及默认获取方式[^2]。 #### 查询数据库中的记录 可以通过 `query` 方法执行简单的 SQL 查询,并迭代返回的结果集。下面是一个例子: ```php $result = $pdo->query("SELECT id, name FROM users"); foreach ($result as $row) { echo "ID: {$row['id']}, Name: {$row['name']} \n"; } ``` 如果需要更复杂的查询或者参数化的查询,则应考虑使用准备好的语句。 #### 准备语句及其重要性 为了防止SQL注入攻击,推荐使用带有占位符的预处理语句来代替直接拼接字符串到SQL命令中。这里展示的是命名绑定变量的方法[^3]: ```php $sql = "SELECT * FROM web_site WHERE VID = :id"; $idValue = '001'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':id', $idValue, PDO::PARAM_STR, 3); $stmt->execute(); while ($row = $stmt->fetch()) { print_r($row); } ``` 以上代码说明了如何安全地传递外部输入给SQL查询。 #### 处理事务 PDO支持完整的事务管理功能,这使得可以在一组操作全部成功完成之前保持未提交状态。一旦所有步骤都顺利完成就可以调用commit()方法正式保存更改;如果有任何一个环节失败则可通过rollBack()撤消整个过程。 ```php $pdo->beginTransaction(); try { // Perform multiple queries here... $pdo->exec("INSERT INTO table_name (...) VALUES (...)"); $lastInsertId = $pdo->lastInsertId(); $pdo->exec("UPDATE another_table SET ... WHERE foreign_key = $lastInsertId"); $pdo->commit(); } catch(\Exception $ex){ $pdo->rollBack(); throw $ex; } ``` 这种机制对于维护数据一致性非常重要[^1]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值