博主信息
博文 38
粉丝 0
评论 0
访问量 25749
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
实例演示数据库的CURD操作、PDO的本质与原理是什么?为什么要用预处理?
Blackeye
原创
750人浏览过

1
2

2. 描述PDO的本质与原理是什么? 为什么要用预处理?

PDO本质是一个包含对数据库相关操作的类

PDO原理是创建一个实例对象,然后调用类中的相关方法对选中的数据库进行操作

预处理:可以防止sql注入攻击,可以实现数据延迟绑定

  1. <?php
  2. namespace php_cn;
  3. use PDO;
  4. // 1. 实例演示数据库的CURD操作
  5. // 连接数据库
  6. $dsn = "mysql:host=localhost;dbname=phpedu;port:3306;charset=utf8;";
  7. $db = new PDO($dsn,'root','root');
  8. // 增加
  9. $sql = 'INSERT `staff` SET `name`=?,`gender`=?,`email`=?';
  10. $stmt = $db->prepare($sql);
  11. $stmt->execute(['Dave',0,'Dave@qq.com']);
  12. $stmt->execute(['John',0,'John@qq.com']);
  13. $stmt->execute(['Frank',0,'Frank@qq.com']);
  14. $stmt->execute(['Jane',1,'Jane@qq.com']);
  15. $stmt->execute(['David',0,'David@qq.com']);
  16. $stmt->execute(['Lee',0,'Lee@qq.com']);
  17. $stmt->execute(['Demon',0,'Demon@qq.com']);
  18. $stmt->execute(['Ash',0,'Ash@qq.com']);
  19. $stmt->execute(['Zarah',1,'Zarah@qq.com']);
  20. $stmt->execute(['Sarah',1,'Sarah@qq.com']);
  21. // 删除
  22. $sql = 'DELETE FROM `staff` WHERE `id`=?';
  23. $stmt = $db->prepare($sql);
  24. $stmt->execute([4]);
  25. // 修改
  26. $sql = 'UPDATE `staff` SET `name`=? WHERE `id`=?';
  27. $stmt = $db->prepare($sql);
  28. $stmt->execute(['meimei',5]);
  29. // 查询
  30. $sql = 'SELECT `id`,`name` FROM `staff` WHERE `id`>?';
  31. $stmt = $db->prepare($sql);
  32. $stmt->execute([3]);
  33. $staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);
  34. foreach($staffs as $staff){
  35. printf("<pre>%s</pre>",print_r($staff,true));
  36. }
  37. // 关闭数据库
  38. $db = null;
批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学