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

搜索
博主信息
博文 33
粉絲 0
評(píng)論 0
訪問(wèn)量 34363
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
服務(wù)端 - PHP - 數(shù)據(jù)庫(kù)之使用PDO進(jìn)行增刪改查
原創(chuàng)
883人瀏覽過(guò)

服務(wù)端 - PHP - 數(shù)據(jù)庫(kù)之使用PDO進(jìn)行增刪改查

一、概述

1. 術(shù)語(yǔ)

  • 數(shù)據(jù)庫(kù): 目錄
  • 數(shù)據(jù)表: 目錄中的文件, .dbf
  • 字段: 也叫’列’
  • 記錄: 也叫’行’,是由一個(gè)或多個(gè)字段組成
  • 鍵: 是用來(lái)標(biāo)識(shí)記錄的

2. 數(shù)據(jù)類型

  • 數(shù)值型: int
  • 字符型: char
  • 日期時(shí)間型: date, datetime

3. 增刪改查操作

  • 增加記錄:INSERT table_name SET column1=value1, column2=value2…);
  • 刪除記錄:DELETE FROM table_name WHERE condition;
  • 更新記錄:UPDATE table_name SET column1 = value1, column2 = value2… WHERE condition;
  • 查詢記錄:SELECT column1, column2… FROM table_name WHERE condition;

二、使用PDO進(jìn)行增刪改查

1. 目錄結(jié)構(gòu)

  1. <pre>
  2. ├─db 數(shù)據(jù)庫(kù)目錄
  3. │ ├─db_curd 增刪改查目錄
  4. │ │ ├─db_insert.php 插入類
  5. │ │ ├─db_delete.php 刪除類
  6. │ │ ├─db_update.php 更新類
  7. │ │ └─db_select.php 查詢類
  8. │ ├─db_connect.php 連接類
  9. │ ├─db_config.php 數(shù)據(jù)庫(kù)配置文件
  10. </pre>

1. db_config.php

  1. //數(shù)據(jù)庫(kù)配置
  2. namespace db_config;
  3. // 數(shù)據(jù)庫(kù)連接配置參數(shù)
  4. return [
  5. //1. 數(shù)據(jù)庫(kù)類型
  6. 'type'=>$type ?? 'mysql',
  7. //2. 數(shù)據(jù)庫(kù)默認(rèn)主機(jī)
  8. 'host'=>$host ?? 'localhost',
  9. //3. 默認(rèn)數(shù)據(jù)庫(kù)
  10. 'dbname'=>$dbname ?? 'shopping',
  11. //4. 默認(rèn)字符編碼集
  12. 'charset'=>$charset ?? 'utf8',
  13. //5. 默認(rèn)端口號(hào)
  14. 'port'=>$port ?? '3306',
  15. //6. 默認(rèn)用戶名
  16. 'username'=>$username ?? 'root',
  17. //7. 默認(rèn)用戶密碼
  18. 'password'=>$password ?? 'root',
  19. ];

2. db_connect.php

  1. //連接數(shù)據(jù)庫(kù)
  2. namespace db_connect;
  3. //導(dǎo)入PDO類和導(dǎo)入異常類
  4. use PDO;
  5. use Exception;
  6. //1. 加載配置參數(shù)
  7. $cfg = require 'db_config.php';
  8. $type = $cfg['type'];
  9. $host = $cfg['host'];
  10. $dbname = $cfg['dbname'];
  11. $username = $cfg['username'];
  12. $password = $cfg['password'];
  13. //2. 創(chuàng)建數(shù)據(jù)源
  14. $dsn = sprintf('%s:host=%s;dbname=%s', $type, $host, $dbname);
  15. //3. PDO方式連接數(shù)據(jù)庫(kù)
  16. try {
  17. //初始化一個(gè)PDO對(duì)象
  18. $pdo = new PDO($dsn, $username, $password);
  19. } catch (Exception $e) {
  20. die($e->getMessage());
  21. }

3. db_insert.php

  1. //新增記錄
  2. namespace db\db_curd\db_insert;
  3. //導(dǎo)入PDO類
  4. use PDO;
  5. //1. 連接數(shù)據(jù)庫(kù)
  6. require '../db_connect.php';
  7. //2. 操作數(shù)據(jù)庫(kù)
  8. //2.1 新增記錄
  9. //準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
  10. $sql = "INSERT `productinfo` SET `p_name`=?, `category_id`=?, `sku_id`=?, `p_stock`=?, `orig_price`=?, `mark_price`=?, `p_desc`=?, `p_img`=?, `p_time`=?";
  11. //定義預(yù)處理語(yǔ)句
  12. $stmt = $pdo->prepare($sql);
  13. //定義數(shù)據(jù)
  14. $data = ['黑莓手機(jī)SK5', 'DZ02', 12315156, 99, 9999.99, 6999.99, '16G運(yùn)行內(nèi)存,128G存儲(chǔ)內(nèi)存', 'FAJKFNALLAILA1238454', time()];
  15. //執(zhí)行預(yù)處理語(yǔ)句
  16. $stmt->execute($data);
  17. //2.2 判斷是否執(zhí)行成功
  18. if ($stmt->rowCount() === 1) {
  19. echo '新增成功,新增記錄的主鍵是:' . $pdo->lastInsertId();
  20. } else {
  21. echo '新增失敗';
  22. print_r($stmt->errorInfo());
  23. };
  24. //3. 關(guān)閉連接
  25. unset($pdo);


4. db_delete.php

  1. //刪除記錄
  2. namespace db\db_curd\db_delete;
  3. //導(dǎo)入PDO類
  4. use PDO;
  5. //1. 連接數(shù)據(jù)庫(kù)
  6. require '../db_connect.php';
  7. //2. 操作數(shù)據(jù)庫(kù)
  8. //2.1 刪除記錄
  9. //準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
  10. $sql = "DELETE FROM `productinfo` WHERE `sku_id`=:sku_id";
  11. //定義預(yù)處理語(yǔ)句
  12. $stmt = $pdo->prepare($sql);
  13. //定義數(shù)據(jù)
  14. $data = [':sku_id'=>12315153];
  15. //執(zhí)行預(yù)處理語(yǔ)句
  16. $stmt->execute($data);
  17. //2.2 判斷是否執(zhí)行成功
  18. if ($stmt->rowCount() >= 1) {
  19. echo '刪除成功,刪除記錄數(shù):' . $stmt->rowCount();
  20. } else {
  21. echo '刪除失敗';
  22. print_r($stmt->errorInfo());
  23. };
  24. //3. 關(guān)閉連接
  25. unset($pdo);


5. db_update.php

  1. //更新記錄
  2. namespace db\db_curd\db_update;
  3. //導(dǎo)入PDO類
  4. use PDO;
  5. //1. 連接數(shù)據(jù)庫(kù)
  6. require '../db_connect.php';
  7. //2. 操作數(shù)據(jù)庫(kù)
  8. //2.1 更新記錄
  9. //準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
  10. $sql = "UPDATE `productinfo` SET `p_name`=? WHERE `sku_id`=?";
  11. //定義預(yù)處理語(yǔ)句
  12. $stmt = $pdo->prepare($sql);
  13. //定義數(shù)據(jù)
  14. $data = ['黑莓手機(jī)SK6', 12315154];
  15. //執(zhí)行預(yù)處理語(yǔ)句
  16. $stmt->execute($data);
  17. //2.2 判斷是否執(zhí)行成功
  18. if ($stmt->rowCount() >= 1) {
  19. echo '更新成功,更新記錄數(shù):' . $stmt->rowCount();
  20. } else {
  21. echo '刪除失敗';
  22. print_r($stmt->errorInfo());
  23. };
  24. //3. 關(guān)閉連接
  25. unset($pdo);


6. db_select.php

6.1 單條查詢

  1. //單條查詢記錄
  2. namespace db\db_curd\db_select;
  3. //導(dǎo)入PDO類
  4. use PDO;
  5. //1. 連接數(shù)據(jù)庫(kù)
  6. require '../db_connect.php';
  7. //2. 操作數(shù)據(jù)庫(kù)
  8. //2.1 查詢記錄
  9. //準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
  10. $sql = "SELECT `id`, `p_name` FROM `productinfo` WHERE `p_stock`<? and `mark_price`<?";
  11. //定義預(yù)處理語(yǔ)句
  12. $stmt = $pdo->prepare($sql);
  13. //定義數(shù)據(jù)
  14. $data = [10, 9999.99];
  15. //執(zhí)行預(yù)處理語(yǔ)句
  16. $stmt->execute($data);
  17. //2.2 判斷是單條查詢還是多條查詢及返回查詢結(jié)果
  18. switch ($stmt->rowCount()) {
  19. case ($stmt->rowCount() === 1):
  20. $staff = $stmt->fetch(PDO::FETCH_ASSOC);
  21. printf('<pre>%s</pre>', print_r($staff, true));
  22. break;
  23. case ($stmt->rowCount() > 1):
  24. $staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);
  25. printf('<pre>%s</pre>', print_r($staffs, true));
  26. break;
  27. default:
  28. echo '查詢失敗';
  29. print_r($stmt->errorInfo());
  30. }
  31. //3. 關(guān)閉連接
  32. unset($pdo);


6.2 多條查詢

  1. //單條查詢記錄
  2. namespace db\db_curd\db_select;
  3. //導(dǎo)入PDO類
  4. use PDO;
  5. //1. 連接數(shù)據(jù)庫(kù)
  6. require '../db_connect.php';
  7. //2. 操作數(shù)據(jù)庫(kù)
  8. //2.1 查詢記錄
  9. //準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
  10. $sql = "SELECT `id`, `p_name` FROM `productinfo` WHERE `p_stock`<? and `mark_price`<?";
  11. //定義預(yù)處理語(yǔ)句
  12. $stmt = $pdo->prepare($sql);
  13. //定義數(shù)據(jù)
  14. $data = [10, 9999.99];
  15. //執(zhí)行預(yù)處理語(yǔ)句
  16. $stmt->execute($data);
  17. //2.2 判斷是單條查詢還是多條查詢及返回查詢結(jié)果
  18. switch ($stmt->rowCount()) {
  19. case ($stmt->rowCount() === 1):
  20. $staff = $stmt->fetch(PDO::FETCH_ASSOC);
  21. printf('<pre>%s</pre>', print_r($staff, true));
  22. break;
  23. case ($stmt->rowCount() > 1):
  24. $staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);
  25. printf('<pre>%s</pre>', print_r($staffs, true));
  26. break;
  27. default:
  28. echo '查詢失敗';
  29. print_r($stmt->errorInfo());
  30. }
  31. //3. 關(guān)閉連接
  32. unset($pdo);


三、課程總結(jié)

  • 今天學(xué)習(xí)了 PHP 的PDO MySQL操作,通過(guò)上課認(rèn)真聽(tīng)講和認(rèn)真完成老師布置的作業(yè),使得我對(duì) PDO的理解和運(yùn)用更加深入和熟悉。最主要的知識(shí)點(diǎn)是明白和掌握了SQL增刪改查和PDO MySQL的語(yǔ)法以及它們的基本用法。
批改老師:天蓬老師天蓬老師

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

老師批語(yǔ):數(shù)據(jù)庫(kù), 其實(shí)沒(méi)你想像的困難吧
本博文版權(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é)