亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 26
粉絲 2
評(píng)論 0
訪問(wèn)量 30339
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
使用接口操作數(shù)據(jù)庫(kù)
leverWang
原創(chuàng)
1121人瀏覽過(guò)

抽象類(lèi)和接口:

  • 抽象類(lèi):不能直接實(shí)例化,可以在類(lèi)中定義方法和屬性。類(lèi)似于模版,子類(lèi)繼承后再實(shí)現(xiàn)詳細(xì)功能.
  • 接口: 接口中定義的所有方法都必須是公有,接口本身是抽象的,內(nèi)部申明的方法也是抽象的; 不用加abstract,接口不能有屬性、普通方法、可以有常量.

使用接口來(lái)操作數(shù)據(jù)庫(kù)

  1. <?php
  2. $config = require 'config.php';
  3. //定義接口類(lèi)
  4. interface iDB
  5. {
  6. // 增加
  7. public static function insert($pdo, $data);
  8. // 刪除
  9. public static function delete($pdo, $where);
  10. // 查詢
  11. public static function select($pdo, $options = []);
  12. // 修改
  13. public static function update($pdo, $options);
  14. }
  15. //定義抽象類(lèi)實(shí)現(xiàn)接口,封裝公共數(shù)據(jù)庫(kù)連接方法
  16. abstract class aDB implements iDB
  17. {
  18. protected static $pdo;
  19. //數(shù)據(jù)庫(kù)連接方法
  20. public static function conn($dsn, $user, $pwd)
  21. {
  22. //判斷數(shù)據(jù)庫(kù)連接對(duì)象是否存在
  23. if (is_null(self::$pdo)) {
  24. try {
  25. $pdo = new PDO($dsn, $user, $pwd);
  26. // 設(shè)置結(jié)果集的默認(rèn)獲取模式
  27. $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  28. return $pdo;
  29. } catch (PDOException $e) {
  30. exit('Connection Error: ' . $e->getMessage());
  31. }
  32. }
  33. return self::$pdo;
  34. }
  35. }
  36. //實(shí)現(xiàn)類(lèi),實(shí)現(xiàn)接口中的方法
  37. class DB extends aDB
  38. {
  39. // 增加
  40. public static function insert($pdo, $data)
  41. {
  42. $sql = "INSERT INTO `users`(`name`,`pwd`,`age`,`tel`) VALUES (?,?,?,?)";
  43. $stmt = $pdo->prepare($sql);
  44. $stmt->bindParam(1, $name, PDO::PARAM_STR, 50);
  45. $stmt->bindParam(2, $pwd, PDO::PARAM_STR, 50);
  46. $stmt->bindParam(3, $age, PDO::PARAM_INT, 30);
  47. $stmt->bindParam(4, $tel, PDO::PARAM_STR, 50);
  48. $num = 0;
  49. foreach ($data as $user) {
  50. extract($user);
  51. $stmt->execute() or die(print_r($stmt->errorInfo(), true));
  52. if ($stmt->rowCount() > 0) {
  53. $num += $stmt->rowCount();
  54. }
  55. }
  56. printf("成功添加 %s 條數(shù)據(jù)", $num);
  57. }
  58. // 刪除
  59. public static function delete($pdo, $where)
  60. {
  61. $sql = "delete from `users` where `id` = ? ";
  62. $stmt = $pdo->prepare($sql);
  63. $stmt->bindParam(1, $where);
  64. $stmt->execute() or die(print_r('刪除失敗' . $stmt->errorInfo(), true));
  65. printf("成功刪除%s條數(shù)據(jù)", $stmt->rowCount());
  66. }
  67. // 查詢
  68. public static function select($pdo, $options = [])
  69. {
  70. $sql = "select `id`,`name`,`age` from `users` where id>= ?";
  71. $stmt = $pdo->prepare($sql);
  72. $stmt->bindParam(1,$options, PDO::PARAM_INT, 30);
  73. $stmt->execute() or die(print_r('查詢失敗' . $stmt->errorInfo()));
  74. foreach ($stmt->fetchAll() as $user) {
  75. vprintf("id:%s,name:%s,age:%s<br>", $user);
  76. }
  77. }
  78. // 修改
  79. public static function update($pdo, $options)
  80. {
  81. $sql = "update `users` set `name`=? where id=? ";
  82. $stmt = $pdo->prepare($sql);
  83. $stmt->bindParam(1, $options['name'], PDO::PARAM_STR, 50);
  84. $stmt->bindParam(2, $options['id'], PDO::PARAM_INT, 20);
  85. $stmt->execute() or die(print_r('更新數(shù)據(jù)失敗:' . $stmt->errorInfo()));
  86. if ($stmt->rowCount() > 0):
  87. print_r('成功更新' . $stmt->rowCount() . '條數(shù)據(jù)');
  88. endif;
  89. }
  90. }
  91. extract($config);
  92. $dsn = "$type:host=$host;dbname=$dbname;charset=$charset;port=$port";
  93. $pdo = DB::conn($dsn, $username, $password);
  94. $users = [
  95. ['name' => 'Adalia1', 'age' => 33, 'pwd' => sha1('1256'), 'tel' => '188938801'],
  96. ['name' => 'Brenda1', 'age' => 12, 'pwd' => sha1('12456'), 'tel' => '178922801'],
  97. ['name' => 'Alice1', 'age' => 55, 'pwd' => sha1('12346'), 'tel' => '168448801'],
  98. ['name' => '騎??癖?', 'age' => 65, 'pwd' => sha1('13456'), 'tel' => '138966801'],
  99. ['name' => 'Catherine1', 'age' => 111, 'pwd' => sha1('23456'), 'tel' => '118988801'],
  100. ];
  101. //增加
  102. //DB::insert($pdo, $users);
  103. //刪除
  104. //DB::delete($pdo,110);
  105. //查詢
  106. //DB::select($pdo,88);
  107. //更新
  108. DB::update($pdo,['name'=>'趙四333','id'=>118]);

總結(jié):初步了解了接口和抽象類(lèi)的定義和使用方法,但是對(duì)接口和抽象類(lèi)在開(kāi)發(fā)中的使用時(shí)機(jī)還不是很理解。

批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語(yǔ):如果你是第一次接觸面向接口編程, 這種想法正常的, 能把這個(gè)案例寫(xiě)對(duì)很不容易
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)