7.19 PDO(php data object-php数据对象)数据库抽象层

本文详细介绍了使用PHP的PDO扩展操作MySQL数据库的方法,包括连接数据库、执行SQL语句、获取查询结果等过程,并提供了多种实用技巧如预处理语句、绑定参数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
 header("Content-type: text/html; charset=utf-8");
 //PDO操作mysql
 /*$pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
 $pdo->exec("set names utf8");//exec()用来执行增删改和设置的语句
 $sql = "select *from student";
 $ycl = $pdo->query($sql);//query()用来执行查询语句
 $attr = $ycl->fetchAll(PDO::FETCH_ASSOC);*/
 //var_dump($attr);
    //lastInsertId()用法:最后一次插入的id
   /* $pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
 $pdo->exec("set names utf8");
 $sql = "insert into student values('','','zhangsan32','','','')";
    if($pdo->exec($sql)){
     $lastid = $pdo->lastInsertId();
      echo "id是{$lastid}的数据插入成功";
      var_dump($lastid);
    }*/
 //setAttribute()设置PDO的一些属性
/* $pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
 $pdo->exec("set names utf8");
 $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);//设置查询数据返回的类型,这样就不用每次都写fetchAll(PDO::FETCH_ASSOC)了
 $sql = "select * from student";
 $ycl = $pdo->query($sql);
  //$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);省去这一句
 $attr = $ycl->fetchAll();
 var_dump($attr);*/
 
//prepare()用法
  /*  $pdo = new PDO('mysql:host=localhost;dbname=ceshi', "root",  "");
    $pdo->exec("set names utf8");
    $sql = "select * from student";
    $ycl = $pdo->prepare($sql);//预处理,把sql语句保存准备,可防止sql注入,也能提高查询的效率,当另一个用户再次请求相同的sql,会先找到这个准备的sql,执行查询
    $ycl->execute();//执行
    $attr = $ycl->fetchAll(PDO::FETCH_ASSOC);*/
   
//bindValue()
   /* $pdo = new PDO('mysql:host=localhost;dbname=ceshi', "root",  "");
    $pdo->exec("set names utf8");
    $sql = "select * from student where sno =?";//防止每个人选择的sno不一样而导致重复的sql,设置sno=?
    $ycl = $pdo->prepare($sql);//预处理
    $id = 098;//这个id是传递过来的参数
    $ycl->bindValue(1,$id,PDO::PARAM_INT);//往第一个问号上绑定$id,并给$id设置类型PDO::PARAM_INT
    $ycl->execute();//执行
    $attr = $ycl->rowCount();
    var_dump($attr);*/
//columnCount()返回表的列数
   /* $pdo = new PDO('mysql:host=localhost;dbname=ceshi', "root",  "");
    $pdo->exec("set names utf8");
    $sql = "select * from student";
    $ycl = $pdo->prepare($sql);//预处理
    $ycl->execute();//执行
    //$attr = $ycl->columnCount();
    $attr = $ycl->fetchColumn(3);
    $attr = $ycl->fetchColumn(4);  //从预处理里面查询某一行数据的第n(n从0开始)列的值,执行第一次是第一行,执行第二次是第二行
    var_dump($attr);*/
 //rowCount()影响数据的行数
   /* $sql = "select * from student";
    $ycl = $pdo->prepare($sql);
    $ycl->execute();
    $attr = $ycl->rowCount();
    var_dump($attr);*/
 //PDO预处理  
    /*$pdo = new PDO('mysql:host=localhost;dbname=ceshi', "root", "");
    $pdo->exec("set names utf8");
    //查询的预处理
    $sql = "select * from student";
    $ycl = $pdo->prepare($sql);
    $ycl->execute();
    $attr = $ycl->fetchAll(PDO::FETCH_ASSOC);
    var_dump($attr);*/

转载于:https://www.cnblogs.com/sunhao1987/p/9338580.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值