Blogger Information
Blog 32
fans 2
comment 0
visits 27927
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
使用pdo类的对象去连接数据库,预处理方法查询数据(二维数组)遍历表格中
简行
Original
667 people have browsed it

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 预处理查询处理的数据都是空;

Correcting teacher:灭绝师太灭绝师太

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
1 comments
灭绝师太 2020-07-17 17:03:13
$pdo->lastInsertId():返回最后插入行的ID或序列值,你就不能把它放到if条件中当成bool类型去判断了,应该if($pdo->lastInsertId() != 0){echo $pdo->lastInsertId()}; 1. 预处理语句可以正常做数据表数据的增删查改 2. LIMIT语句语法去好好看看,注意你使用的MYSQL的版本。
1 floor
Author's latest blog post