博客列表 >pdo连接方法,及其增删查改

pdo连接方法,及其增删查改

张浩刚
张浩刚原创
2019年11月22日 17:00:00852浏览

PDO接入数据库

$pdo = new PDO(‘数据源’,’数据库账户’,’数据库密码’);

$pdo = new PDO(‘myslq:host=127.0.0.1;dbname=root’,’rootzh’,’root123’);

数据源:myslq:host=127.0.0.1;dbname=root ;mysql就是数据库类型,host=数据库地址,dbname=数据库名称

以上是以本地数据库为例,本地数据库地址127.0.0.1,数据库名root ,数据库账户rootzh,数据库密码root123
  1. // 在php中配置数据库,一般用一维关联数组
  2. // 1、配置数据库
  3. $db = [
  4. 'type'=>'mysql',
  5. 'host'=>'localhost',
  6. 'dbname'=>'root',
  7. 'username'=>'rootzh',
  8. 'password'=>'root123',
  9. ]
  10. // 2、配置数据源 (mysql:host=...;dbname=...)
  11. $shujuyuan = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}"; //双引号配置法
  12. $shujuyuan = $db['type'] . ':host=' . $db['host'] . ';dbname=' . $db['dbname']; //单引号配置法
  13. // 3、连接数据库 (这里$pdo就是上图显示的,数据源,数据账户,数据库密码)
  14. try{
  15. $pdo = new PDO($shujuyuan,$db['username'],$db['password']);
  16. }catch(PDOException $e){ //PDOException 付给变量 $e
  17. die('错误提示:' . $e -> getMessage() ); //die终止程序 ,$e的错误内容,通过getMessage展示出来
  18. }
  19. // 小提示 数据库配置也可以使用 索引数组,但一般推荐使用关联数组
  20. $db = ['mysql','localhost','root','rootzh','root123'];
  21. $shujuyuan = $db[0] . ':host=' . $db[1] . ';dbname=' . $db[2];
  22. try{
  23. $pdo = new PDO($shujuyuan,$db[3],$db[4]);
  24. }catch(PDOExecption $e){
  25. die('错误提示:' . $e -> $getMessage());
  26. }

以上php假定保存在 content.php 中,方便调用

PDO预处理

  1. // 1、接入数据库
  2. require __DIR__ . '/content.php';
  3. // 2、创建SQL语句模板
  4. // 增
  5. $sql = 'INSERT INTO `数据表名` SET `字段1`=:值1, `字段2`=:值2, `字段3`=:值3';
  6. $sql = 'INSERT INTO `list` SET `title`=:t, `name`=:n';
  7. // 改
  8. $sql = 'UPDATE `数据表名` SET `字段1`=:值1, `字段2`=:值2, `字段3`=:值3' WHERE `字段`=值;
  9. $sql = 'UPDATE `list` SET `title`=:t, `name`=:n' WHERE `id`=7;
  10. // 删
  11. $sql = 'DELETE FROM `数据表名` WHERE `字段`=值;
  12. $sql = 'DELETE FROM `list` WHERE `id`=7;
  13. // 查
  14. $sql = 'SELECT * FROM `数据表名` WHERE `字段`=值;
  15. $sql = 'SELECT * FROM `list` WHERE `id`=7;
  16. // 3. 创建SQL语句对象
  17. $ssq = $pdo -> prepare($slq);
  18. **PDOStatement 类常用方法**
  19. execute(): 执行SQL语句(读/写)
  20. rowCount(): 返回受影响的记录数量(不适合SELECT)
  21. errorInfo(): 返回错误信息数组
  22. fetch(): 获取结果集中的下一行
  23. fetchAll(): 返回结果集中的所有行
  24. fetchColumn(): 返回结果集下一行的单独的一列
  25. bindColumn(): 将结果集某字段绑定到指定变量上

示例1,增

  1. require __DIR__ . '/content.php';
  2. // 增加,sql语句模板
  3. $sql = 'INSERT INTO `list` SET `title`=:title, `name`=:name `id`=:id';
  4. // 创建SQL语句对象
  5. $ssq = $pdo -> prepare($sql);
  6. // 1、新增的内容
  7. $id = 1;
  8. $title = '国产电影';
  9. $name = 'gc';
  10. // 2、将变量绑定到SQL语句模板的命名占位符上
  11. $ssq -> bindParam('id',$id,PDO::PARAM_INT);
  12. $ssq -> bindParam('title',$title,PDO::PARAM_SRR);
  13. $ssq -> bindParam('name',$name,PDO::PARAM_STR);
  14. // 3、执行SQL操作
  15. if($ssq -> execute()){
  16. if($ssq -> rowCount() > 0){
  17. echo '成功输入' . $ssq -> rowCount() . '条信息, 该记录的主键id是: ' . $pdo->lastInsertId();
  18. }
  19. }else{
  20. die(print_r($ssq -> errorInfo(),true));
  21. }
  22. // 4. 销毁pdo, 关闭连接
  23. $pdo = null; // unset($pdo) 等价

示例2,改

  1. require __DIR__ . '/content.php';
  2. // 1、要更改的SQL模板
  3. $sql = 'UPDATE `list` SET `title`=:t, `name`=:n WHERE `id`=:id';
  4. // 2、SQL语句对象
  5. $ssq = $pdo -> prepare($slq);
  6. // 要更改的内容
  7. $t = '日韩电影';
  8. $n = 'rh';
  9. $id = '2';
  10. // 将变量绑定到SQL语句模板的命名占位符上
  11. $ssq -> bindParam('t',$t,PDO::PARAM_STR);
  12. $ssq -> bindParam('n',$n,PDO::PARAM_STR);
  13. $ssq -> bindParam('$id',$id,PDO::PARAM_INT);
  14. // 执行SQL操作
  15. if($ssq -> execute()){
  16. if($ssq -> rowCount()){
  17. echo '成功更改' . $ssq -> rowCount() . '条信息';
  18. }
  19. }else{
  20. die(print_r($ssq -> errorInfo(), true));
  21. }
  22. // 销毁pdo
  23. unset($pdo); //从内存中删除,等价于 $pdo = Null;

示例3,删

  1. require __DIR__ . '/content.php';
  2. // 设置删除模板
  3. $sql = 'DELECT FROM `list` WHERE `id`=:id';
  4. $ssq = $pdo -> prepare($sql);
  5. // 设置删除那一条
  6. $id = 10;
  7. // 将变量绑定到SQL语句模板的命名占位符上
  8. $ssq->bindParam('id',$id,PDO::PARAM_INT);
  9. // 执行SQL操作 execute()执行sql语句
  10. if($ssq -> execute()){
  11. if($ssq -> rowCount()){
  12. echo '成功删除'.$ssq -> rowCount().'条信息';
  13. }
  14. }else{
  15. die(print_r($ssq->errorInfo(),true));
  16. }
  17. //最后销毁pdo,释放内存
  18. $pdo = Null; //或 unset($pdo);

示例4,查 fetch() + while()

  1. require __DIR__ . '/content.php';
  2. // 设置查询的sql模板
  3. $sql = 'SELECT * FROM `list` WHERE `id`=:id';
  4. // 设置查询的sql对象
  5. $ssq = $pdo -> prepare($sql);
  6. // 设置查询那一条id
  7. $id = 10;
  8. // 将变量绑定到SQL语句模板的命名占位符上
  9. $ssq->bindParam('id',$id,PDO::PARAM_INT);
  10. // 执行SQL操作 execute()执行sql语句
  11. $ssq -> execute();
  12. // 遍历
  13. while ($movie = $stmt->fetch(PDO::FETCH_ASSOC)) {
  14. echo '<pre>' . print_r($movie, true);
  15. }
  16. //最后销毁pdo,释放内存
  17. $pdo = Null; //或 unset($pdo);


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议