一 、 PDO的连接

  $host = "localhost";
$dbname = "hejuntest";
$username = "root";
$pwd = "";
$dsn = "mysql:host=$host;dbname=$dbname";
$opt = array(PDO::ATTR_PERSISTENT => TRUE); //持久链接
try{
$pdo = new PDO($dsn , $username , $pwd , $opt);
}catch(PDOException $e){
echo 'connect error~ ' . $e->get_Message();
}

二 、PDO的增、删、改

    $sql = "update student set name='xiaoran' where id in(1,2) ";
$affted_rows = $pdo->exec($sql); //返回受影响的行数

三、 PDO的查

  • 使用fetch()
    $sql = "select * from student";
$pdostatement = $pdo->query($sql);
echo '<table>';
while(list($id , $name , $age , $class) = $pdostatement->fetch(PDO::FETCH_NUM)){
echo '<tr>';
echo '<td>' . $id .'</td>';
echo '<td>' . $name .'</td>';
echo '<td>' . $age .'</td>';
echo '<td>' . $class .'</td>';
echo '</tr>';
}
echo '</table>';
  • 使用fetchAll()
    $sql = "select * from student";
$pdostatement = $pdo->query($sql);
$data = $pdostatement->fetchAll(PDO::FETCH_ASSOC);
echo '<table>';
foreach($data as $k => $v){
echo '<tr>';
echo '<td>' . $v['id'] .'</td>';
echo '<td>' . $v['name'] .'</td>';
echo '<td>' . $v['age'] .'</td>';
echo '<td>' . $v['class'] .'</td>';
echo '</tr>';
}
echo '</table>';

四、 PDO的预处理(支持采用预处理方式)

  • 指定名字绑定变量
    $sql = "insert into student (name,age,class) values (:name,:age,:class)";
$pdostatement = $pdo->prepare($sql); $pdostatement->bindParam(":name" , $name);
$pdostatement->bindParam(":age" , $age);
$pdostatement->bindParam(":class" , $class);
$name = "hejun";
$age = 25;
$class = 15;
$pdostatement->execute(); $name = "daxi";
$age = 26;
$class = 16;
$pdostatement->execute();
  • ? 符号绑定变量
   $sql = "insert into student(name,age,class) values(?,?,?)";
$pdostatement = $pdo->prepare($sql); $pdostatement->bindParam(1 , $name);
$pdostatement->bindParam(2 , $age);
$pdostatement->bindParam(3 , $class); $name = "hejun";
$age = 25;
$class = 15;
$pdostatement->execute(); $name = "daxi";
$age = 26;
$class = 16;
$pdostatement->execute();
  • 省去绑定变量方法
    $sql = "insert into student(name,age,class) values(?,?,?)";
$pdostatement = $pdo->prepare($sql);
$pdostatement->execute(array("daxixi",20,11)); echo $pdo->lastInsertId(); //如果有主键,得到最后一条插入的主键值 echo '<br>' . $pdostatement->rowCount();//得到影响行数

数据库抽象层 pdo的更多相关文章

  1. 数据库抽象层PDO

    通过数据库抽象层PDO可以访问多个数据库 //数据库抽象层PDO //造DSN:驱动名:dbname=数据库名:host=服务器地址 $dsn = "mysql:dbname=mydb;ho ...

  2. PHP数据库抽象层--PDO(PHP Data Object) [一]

    1.简介:(PDO数据库访问抽象层,统一各种 数据库的访问接口 ) PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口.实现 PDO 接口的每个数据库驱动可以公开具体数据库 ...

  3. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 2

    18.2  PDO所支持的数据库 使用PHP可以处理各种数据库系统,包括MySQL.PostgreSQL.Oracle.MsSQL等.但访问不同的数据库系统时,其所使用的PHP扩展函数也是不同的.例如 ...

  4. PHP 数据库抽象层pdo

    PDO是PHP数据对象(PHP Data Object)的缩写. pdo就是一个"数据库访问抽象层",作用是统一各种数据库的访问接口,能够轻松地在不同数据库之间进行切换,使得数据库 ...

  5. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 5

    18.5  使用PDO对象 PDO扩展类库为PHP访问数据库定义了一个轻量级.一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据,大大简化了数据 ...

  6. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 1

    现在,如果你已经能熟练地使用MySQL客户端软件来操作数据库中的数据,就可以开始学习如何使用PHP来显示和修改数据库中的数据了.PHP提供了标准的函数来操作数据库.在PHP 5以上的版本中可以使用My ...

  7. 【代码总结】数据库抽象层PDO

    一.概述 PDO就是一个"数据库访问抽象层",起作用是统一各种数据库的访问接口,能够轻松的在不同数据库之间进行切换. 二.PDO的安装 编辑php.ini文件 添加 extensi ...

  8. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 12

    18.9  管理表books实例 在Web项目中,几乎所有模块都要和数据表打交道,而对表的管理无非就是增.删.改.查等操作,所以熟练掌握对表进行管理的这些常见操作是十分有必的.本例为了能更好地展示PD ...

  9. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 9

    18.7  PDO的事务处理 事务是确保数据库一致的机制,是一个或一系列的查询,作为一个单元的一组有序的数据库操作.如果组中的所有SQL语句都操作成功,则认为事务成功,那么事务被提交,其修改将作用于所 ...

  10. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 8-1

    18.6.5  获取数据 PDO的数据获取方法与其他数据库扩展非常类似,只要成功执行SELECT查询,都会有结果集对象生成.不管使用PDO对象中的query()方法,还是使用prepare()和exe ...

随机推荐

  1. 转:oracle几组重要的常见视图-v$process,v$session,v$session_wait,v$session_event

    v$process 本视图包含当前系统oracle运行的所有进程信息.常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系.在某些情况下非常有用: 1 如果数据库瓶颈是 ...

  2. mysql数据恢复 insert\update\delete 工具MyFlash

    一.简介MyFlash是由美团点评公司技术工程部开发维护的一个回滚DML操作的工具.该工具通过解析v4版本的binlog,完成回滚操作.相对已有的回滚工具,其增加了更多的过滤选项,让回滚更加容易. 该 ...

  3. Rest之路 - Rest架构中的重要概念

    资源 在Rest的架构之内,讲一切内容都是为资源.每一个资源都被定义为一个URI. 格式: <protocol>://<service-name>/<ResourceTy ...

  4. redis-win7

    http://blog.csdn.net/renfufei/article/details/38474435

  5. 说说API的重放机制

    API的重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击.重放攻击是什么呢?就是把你的请求原封不动地再发送一次,两次...n次,一般正常的请求都会通过验证进入到正常逻辑中,如果这个正 ...

  6. mac下怎样删除冗余的环境变量?echo $PATH

    记下$PATH变量中冗余路径所处顺序,例如: /Users/zhang/.rvm/gems/ruby-2.1.2/bin:/Users/zhang/.rvm/gems/ruby-2.1.2@globa ...

  7. AngularJS框架

    http://www.runoob.com/angularjs/angularjs-intro.html

  8. 【bzoj1565】[NOI2009]植物大战僵尸

    1565: [NOI2009]植物大战僵尸 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2164  Solved: 1001[Submit][Stat ...

  9. 【bzoj1455】罗马游戏

    1455: 罗马游戏 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1061  Solved: 439[Submit][Status][Discuss] ...

  10. EKF model&realization

    REF: https://pythonrobotics.readthedocs.io/en/latest/modules/localization.html#unscented-kalman-filt ...