博主信息
博文 32
粉丝 2
评论 0
访问量 37782
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
使用pdo类的对象去连接数据库,预处理方法查询数据(二维数组)遍历表格中
简行
原创
851人浏览过

1.设置数据库配置文件及连接:config.php

  1. <?php
  2. //主机地址
  3. define("DB_HOST","localhost");
  4. //数据库用户名
  5. define("DB_USER","root");
  6. //数据库密码
  7. define("DB_PASSWORD","root123");
  8. // 数据库型号
  9. define("DB_TYPE","mysql");
  10. // 数据库名称
  11. define("DB_NAME","my_user");
  12. //数据库编码
  13. define('DB_CHARSET', 'utf8');
  14. //数据库端口号
  15. define('DB_PORT', '3306');
  16. //定义PDO的DSN,数据源名,包括主机名,端口号和数据库名称。
  17. define('DSN', DB_TYPE.":host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET);
  18. try{
  19. //连接数据款
  20. $pdo = new PDO(DSN,DB_USER,DB_PASSWORD);
  21. } catch(PDOException $e){
  22. //捕捉特定于数据库信息的PDOEXCEPTION 异常
  23. echo $e->getMessage();
  24. } catch(Throwable $e){
  25. //捕捉拥有Throwable接口的错误或者其他异常
  26. echo $e->getMessage();
  27. }

2.查询遍历:index.php

  1. <?php
  2. //引用文件
  3. require "config.php";
  4. //插入
  5. // $sql1 = "INSERT INTO mu_user (`username`,`password`,`phone`) VALUES('营业员','654321',1865243422)";
  6. // // exec()执行一条 UPDATE,DELETE,INSERT SQL 语句,并返回受影响的行数
  7. // $pdo ->exec($sql1);
  8. // // lastInsertId:返回最后插入行的ID或序列值
  9. // $res_num= $pdo ->lastInsertId();
  10. // if($res_num){
  11. // echo $res_num;
  12. // }else{
  13. // // errorCode() — 获取跟数据库句柄上一次操作相关的 SQLSTATE码;
  14. // echo $pdo->errorCode();
  15. // }
  16. //修改
  17. // $resnum = $res_num-1;
  18. // $uname = '营业员'.$resnum;
  19. // $sql2 = "UPDATE mu_user SET username='".$uname."' WHERE id=".$resnum;
  20. // $res= $pdo ->exec($sql2);
  21. // if($res){
  22. // echo $res;
  23. // }else{
  24. // // errorCode() — 获取跟数据库句柄上一次操作相关的 SQLSTATE码;
  25. // echo $pdo->errorCode();
  26. // }
  27. $sql = "SELECT * FROM mu_user WHERE `username`=:username";
  28. // prepare() — 准备要执行的语句,并返回PDOStatement语句对象
  29. $stemt = $pdo ->prepare($sql);
  30. $username="营业员";
  31. // bindParam — 绑定一个参数到指定的变量名
  32. $stemt->bindParam(":username",$username);
  33. // execute:执行一条预处理语句
  34. $stemt ->execute();
  35. // fetchAll — 返回一个包含结果集中所有行的数组
  36. $result = $stemt->fetchAll(PDO::FETCH_ASSOC);
  37. $res_num = $stemt->rowCount();
  38. ?>
  39. <!DOCTYPE html>
  40. <html lang="en">
  41. <head>
  42. <meta charset="UTF-8">
  43. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  44. <title>Document</title>
  45. </head>
  46. <style>
  47. table{
  48. text-align: center;
  49. border: 1px solid #000;
  50. }
  51. td{
  52. font-size: 1.5rem;
  53. margin:5px;
  54. border: 1px solid #000;
  55. padding: 5px;
  56. }
  57. </style>
  58. <body>
  59. <table >
  60. <tr>
  61. <td>序号</td>
  62. <td>姓名</td>
  63. <td>电话</td>
  64. </tr>
  65. <?php foreach($result as $val){?>
  66. <tr>
  67. <td><?php echo $val['id']?></td>
  68. <td><?php echo $val['username']?></td>
  69. <td><?php echo $val['phone']?></td>
  70. </tr>
  71. <?php }?>
  72. <tr >
  73. <td colspan="3" ><?php echo '总计:'.$res_num."条";?></td>
  74. </tr>
  75. </table>
  76. </body>
  77. </html>

3.效果图

总结
1.不清楚用预处理插入和修改数据可不可行,尝试使用过,但没成功;如果可行的话,后面再测试;
2.不清楚为什么使用limit 预处理查询处理的数据都是空;

批改老师:灭绝师太灭绝师太

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
1条评论
灭绝师太 2020-07-17 17:03:13
$pdo->lastInsertId():返回最后插入行的ID或序列值,你就不能把它放到if条件中当成bool类型去判断了,应该if($pdo->lastInsertId() != 0){echo $pdo->lastInsertId()}; 1. 预处理语句可以正常做数据表数据的增删查改 2. LIMIT语句语法去好好看看,注意你使用的MYSQL的版本。
1楼
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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

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