博客列表 >通过接口演示简单的增删改查

通过接口演示简单的增删改查

简行
简行原创
2020年07月23日 17:36:13866浏览

一.注意事项

1.抽象类与抽象方法

  • 关键字abstract:在类/方法最前面加上,则叫抽象类/抽象方法
  • 抽象类必须通过它的子类来调用抽象类中的方法
  • 抽象方法: 没有实现,只有声明, 子类中必须实现它

2.接口

  • 定义一个接口:interface 接口名
  • 在接口中所有成员都是抽象的;
  • 接口成员的访问控制必须是public;
  • 不允许有属性,但允许有接口常量, 禁止重写;
  • 接口还可以有构造方法;
  • 接口通过关键字implements实现:class 类名 implements 接口名

    二.通过接口应用场景: 用抽象类来实现接口,演示简单的增删改查

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. `

2.演示文件:index.php

  1. <?php
  2. //接口
  3. interface iDbset
  4. {
  5. // 抽象方法
  6. //新增
  7. public static function insert($db,$data);
  8. //查询
  9. public static function select($db,$opt=[]);
  10. //修改
  11. public static function update($db,$opt=[]);
  12. //删除
  13. public static function delete($db,$where);
  14. }
  15. //实现类使用抽象类来充当:中间类
  16. abstract class aDb implements iDbset
  17. {
  18. //初始化连接
  19. // 使用单例模式连接: 创建类的唯一实例,唯一对象
  20. protected static $db =null;
  21. // 抽象类充当接口实现类时, 不用必须实现接口中的抽象方法
  22. // 当实现类中的方法中有一些公共操作时,可以将这些操作放在中间的抽象类中实现它
  23. public static function connet($db,$username,$password)
  24. {
  25. //判断是否连接数据库
  26. if(is_null(self::$db)){
  27. return self::$db = new PDO($db,$username,$password);
  28. }
  29. return self::$db;
  30. }
  31. }
  32. //实现类
  33. class DB extends aDb
  34. {
  35. // //新增
  36. public static function insert($db,$data){
  37. $sql =" INSERT `mu_user` SET `username`=?,`password`=?,`phone`=?";
  38. $stem = $db->prepare($sql);
  39. $stem ->bindParam(1,$data['username']);
  40. $stem ->bindParam(2,$data['password']);
  41. $stem ->bindParam(3,$data['phone']);
  42. // var_dump($data['table']);
  43. $stem->execute();
  44. if($stem->rowCount()){
  45. return "新增:".$stem->rowCount()."条";
  46. }else{
  47. // return "errorInfo :".$stem->errorInfo();
  48. return "新增失败";
  49. }
  50. }
  51. //查询
  52. public static function select($db,$opt=[]){
  53. $sql = "SELECT * FROM `mu_user` WHERE `id`<?";
  54. $stem = $db->prepare($sql);
  55. $id =10;
  56. $stem ->bindParam(1,$id);
  57. $stem->execute();
  58. if($stem->rowCount()){
  59. return $stem ->fetchAll (PDO::FETCH_ASSOC);
  60. }else{
  61. return "未查询到数据";
  62. }
  63. }
  64. //修改
  65. public static function update($db,$opt=[]){
  66. $sql =" UPDATE `mu_user` SET `username`=?,`phone`=? WHERE `id`=?";
  67. $stem = $db->prepare($sql);
  68. $stem ->bindParam(1,$opt['username']);
  69. $stem ->bindParam(2,$opt['phone']);
  70. $stem ->bindParam(3,$opt['id']);
  71. $stem->execute();
  72. if($stem->rowCount()){
  73. return "修改:".$stem->rowCount()."条";
  74. }else{
  75. // return "errorInfo :".$stem->errorInfo();
  76. return "修改失败";
  77. }
  78. }
  79. //删除
  80. public static function delete($db,$where){
  81. $sql =" DELETE FROM `mu_user` WHERE `id`=?";
  82. $stem = $db->prepare($sql);
  83. $stem ->bindParam(1,$where);
  84. $stem->execute();
  85. if($stem->rowCount()){
  86. return "删除:".$stem->rowCount()."条";
  87. }else{
  88. // return "errorInfo :".$stem->errorInfo();
  89. return "删除失败";
  90. }
  91. }
  92. }
  93. //客户端
  94. require "./config.php";
  95. //数据连接
  96. $db = DB::connet(DSN,DB_USER,DB_PASSWORD);
  97. //新增数据
  98. $data=[
  99. 'table'=>'my_user',
  100. 'username'=>'天性健',
  101. 'password'=>md5(654321),
  102. 'phone'=>'7256868632'
  103. ];
  104. echo DB::insert($db,$data);
  105. echo "<hr>";
  106. //查询
  107. foreach(DB::select($db) as $arr){
  108. echo "ID:".$arr['id'].",姓名:".$arr['username'].",电话:".$arr['phone']."<br>";
  109. }
  110. echo "<hr>";
  111. //编辑id
  112. $data=[
  113. 'id'=>18,
  114. 'username'=>'大黄蜂',
  115. 'phone'=>'11111111'
  116. ];
  117. echo DB::update($db,$data);
  118. echo "<hr>";
  119. //删除
  120. echo DB::delete($db,21);
  121. echo "<hr>";

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