博主信息
博文 34
粉丝 0
评论 0
访问量 32428
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
MYSQL -(一)CURD/PDO
CY明月归
原创
1675人浏览过

作业内容:

1. 实例演示数据库的CURD操作

  1. <?php
  2. namespace pdo_edu;
  3. //var_dump($db); 测试是否连接成功
  4. /**
  5. * 数据库常用操作
  6. * 1. 读操作: select
  7. * 2. 写操作: insert,update,delete
  8. * 简称: CURD, 增删改查
  9. */
  10. //1、连接数据库
  11. //require __DIR__.'/hw.php';
  12. use PDO;
  13. /**操作数据库三步:
  14. * 1、连接数据库
  15. * 2、增删改查CURD
  16. * 3、关闭连接
  17. */
  18. //DSN:数据库的配置参数,类型,主机名,默认数据库,端口号,默认字符编码
  19. // $dbConfig = require __DIR__.'/myconfig.php';
  20. $dbConfig =[
  21. 'type'=>'mysql',
  22. 'host' => 'localhost',
  23. 'dbname' => 'testsql',
  24. 'port'=>'3306',
  25. 'charset'=>'utf8',
  26. 'username' => 'zolo',
  27. 'password' => '123456'
  28. ];
  29. //import variables into the current symbol table from an array
  30. extract($dbConfig);
  31. // Source Host : localhost:3306
  32. // Source Schema : zolotest
  33. $db = new PDO("$type:host=$host;port=$port;dbname=$dbname;charset=$charset",$username,$password);
  34. //$db = new PDO($dsn,$username,$password);
  35. //2、操作
  36. // 新增操作
  37. $sql = 'INSERT `users` SET `name` = ?,`dept`= ?,`grade`= ?';
  38. $stmt = $db->prepare($sql);
  39. if($stmt ->execute(['zolo','SaaS','7'])){
  40. $stmt ->execute(['test','Air','6']);
  41. $stmt ->execute(['tony','Air','3']);
  42. $stmt ->execute(['miny','SaaS','6']);
  43. $stmt ->execute(['galen','Air','2']);
  44. $stmt ->execute(['rita','SaaS','6']);
  45. $stmt ->execute(['selina','Air','1']);
  46. if($stmt->rowCount()>0){
  47. echo "执行成功<br>";
  48. }else{
  49. echo "rowCount失败<br>";
  50. print_r($stmt->errorInfo());
  51. }
  52. }else{
  53. echo "execute执行失败<br>";
  54. print_r($stmt->errorInfo());
  55. }
  56. //更新操作
  57. $sql = 'UPDATE `users` SET `name` = ? where `id`=?';
  58. $stmt = $db->prepare($sql);
  59. if($stmt ->execute(['sss',1])){
  60. if($stmt->rowCount()>0){
  61. echo "更新成功<br>";
  62. }else{
  63. echo "rowCount失败<br>";
  64. print_r($stmt->errorInfo());
  65. }
  66. }else{
  67. echo "execute更新失败<br>";
  68. print_r($stmt->errorInfo());
  69. }
  70. //删除操作
  71. $sql = 'DELETE from `users` WHERE `id` = ? ';
  72. // 对应传参:[2]
  73. //$sql = 'DELETE from `users` WHERE `id` = :id ';
  74. //对应传参:([':id'=>2]
  75. $stmt = $db->prepare($sql);
  76. //$_GET['id']获取传参id http://php19.edu/426/hw1.php?id=3
  77. if($stmt ->execute([$_GET['id']])){
  78. if($stmt->rowCount()>0){
  79. echo "删除成功<br>";
  80. }else{
  81. print_r($stmt->errorInfo());
  82. echo "rowCount失败<br>";
  83. }
  84. }else{
  85. echo "execute删除失败<br>";
  86. print_r($stmt->errorInfo());
  87. }

  1. //查询操作
  2. //单条查询
  3. $sqlquery = "select * from `users` where `dept` = 'SaaS'";
  4. $stmt = $db->prepare($sqlquery);
  5. if($stmt ->execute()){
  6. if($stmt->rowCount()>0){
  7. $res = $stmt->fetch(PDO::FETCH_ASSOC);
  8. echo "单条查询成功:<br>";
  9. printf('<pre>%s</pre>',print_r($res,true));
  10. }else{
  11. echo "rowCount失败<br>";
  12. print_r($stmt->errorInfo());
  13. }
  14. }else{
  15. echo "execute查询失败<br>";
  16. print_r($stmt->errorInfo());
  17. }
  18. //多条查询
  19. if($stmt ->execute()){
  20. if($stmt->rowCount()>0){
  21. $res = $stmt->fetchAll(PDO::FETCH_ASSOC);
  22. echo "批量查询成功:<br>";
  23. foreach($res as $user){
  24. printf('<pre>%s</pre>',print_r($user,true));}
  25. }else{
  26. echo "rowCount失败<br>";
  27. print_r($stmt->errorInfo());
  28. }
  29. }else{
  30. echo "execute查询失败<br>";
  31. print_r($stmt->errorInfo());
  32. }
2. 描述PDO的本质与原理是什么?为什么要用预处理?
  1. PHP 数据对象 PDO 扩展为PHP访问数据库定义了一个轻量级的一致接口。
  2. PDO 提供了一个 数据访问 抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。
  3. /**
  4. * PDO预处理
  5. * 为什么要用预处理?
  6. * 1. 防止SQL注入攻击, 2. 数据延迟绑定
  7. * (编程时只写SQL语句模板,执行SQL时再给占位符绑定真实数据)
  8. * 预处理过程:
  9. * 1. 创建SQL语句模板对象: 数据使用占位符表示
  10. * 2. 执行SQL语句,根据操作类型(写/读),读返回结果集/数组, 写返回受影响的记录数量
  11. */
批改老师: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+教程免费学