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

搜索
博主信息
博文 55
粉絲 3
評論 0
訪問量 69528
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
數(shù)據(jù)庫操作總結(jié)
王佳祥
原創(chuàng)
1128人瀏覽過

數(shù)據(jù)庫操作總結(jié)

一、MYSQLi

1.把數(shù)據(jù)庫連接配置參數(shù)單獨(dú)放到一個(gè)文件,用的時(shí)候直接引用這個(gè)文件

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

2.把數(shù)據(jù)庫連接過程單獨(dú)放到一個(gè)文件,用的時(shí)候直接引用

  1. <?php
  2. //.連接數(shù)據(jù)庫
  3. //導(dǎo)入配置參數(shù)。就是一個(gè)數(shù)組
  4. $config = require __DIR__ . '/../config.php';
  5. //關(guān)聯(lián)數(shù)組拆分為變量
  6. extract($config);
  7. //連接數(shù)據(jù)庫
  8. $mysqli = new mysqli($host,$username,$password,$dbname);
  9. //檢測錯(cuò)誤
  10. if($mysqli->connect_errno) die('Connect Error: ' . $mysqli->connect_error);
  11. //字符編碼
  12. $mysqli->set_charset($charset);

3.數(shù)據(jù)庫的新增操作

  1. <?php
  2. //新增操作
  3. //1.連接數(shù)據(jù)庫
  4. require "connect.php";
  5. //2.操作
  6. //sql語句,用預(yù)處理語句
  7. $sql = 'INSERT `user` SET `username`=?,`password`=?,`age`=?;';
  8. //然后把sql語句轉(zhuǎn)為stmt對象
  9. $stmt = $mysqli->prepare($sql);
  10. //給sql語句中的占位符綁定變量
  11. $stmt->bind_param('ssi',$username,$password,$age);
  12. //給變量賦值
  13. $username = 'tangsan';
  14. $password = md5('123456');
  15. $age = 12;
  16. $stmt->execute() or die($stmt->error);
  17. printf('成功新增了%S條記錄,新增主鍵ID = %d<br>',$stmt->affected_rows,$stmt->insert_id);
  18. //通過遍歷添加大量數(shù)據(jù)
  19. $users = [
  20. ['username'=>'Yname','password'=>md5('12346'),'age'=>21],
  21. ['username'=>'Cname','password'=>md5('12346'),'age'=>19],
  22. ['username'=>'Qname','password'=>md5('12346'),'age'=>28],
  23. ['username'=>'Wname','password'=>md5('12346'),'age'=>24],
  24. ['username'=>'Ename','password'=>md5('12346'),'age'=>26],
  25. ['username'=>'Rname','password'=>md5('12346'),'age'=>23]
  26. ];
  27. foreach($users as $user){
  28. extract($user);
  29. $stmt->execute() or die($stmt->error);
  30. printf('成功新增了%S條記錄,新增主鍵ID = %d<br>',$stmt->affected_rows,$stmt->insert_id);
  31. }
  32. //3.關(guān)閉數(shù)據(jù)庫連接
  33. $mysqli->close();




4.數(shù)據(jù)庫的更新操作

  1. <?php
  2. //更新操作
  3. //1.連接數(shù)據(jù)庫
  4. require 'connect.php';
  5. //2.操作語句
  6. $sql = 'UPDATE `user` SET `username`=?,`password`=?,`age`=? WHERE `id`=?;';
  7. //把sql語句轉(zhuǎn)為stmt對象
  8. $stmt = $mysqli->prepare($sql);
  9. //給stmt對象綁定變量
  10. $stmt->bind_param('ssii',$username,$password,$age,$id);
  11. //變量賦值
  12. $username = 'PQfl1';
  13. $password = md5('444421');
  14. $age = 88;
  15. $id = 3;
  16. //執(zhí)行sql語句
  17. $stmt->execute() or die($stmt->error);
  18. printf('成功更新了%s條語句',$stmt->affected_rows);
  19. //3.關(guān)閉數(shù)據(jù)庫
  20. $mysqli->close();


5.數(shù)據(jù)庫的刪除操作

  1. <?php
  2. //刪除操作
  3. //1.連接數(shù)據(jù)庫
  4. require 'connect.php';
  5. //2.操作語句
  6. $sql = 'DELETE FROM `user` WHERE `id`=?;';
  7. //把sql語句轉(zhuǎn)為stmt對象
  8. $stmt = $mysqli->prepare($sql);
  9. //給stmt對象綁定變量
  10. $stmt->bind_param('i',$id);
  11. //變量賦值
  12. $id = 3;
  13. //執(zhí)行sql語句
  14. $stmt->execute() or die($stmt->error);
  15. printf('成功刪除了%s條語句',$stmt->affected_rows);
  16. //3.關(guān)閉數(shù)據(jù)庫
  17. $mysqli->close();


6.數(shù)據(jù)庫的查詢操作

  1. <?php
  2. //查詢操作
  3. //1.連接數(shù)據(jù)庫
  4. require 'connect.php';
  5. //2.操作語句
  6. //$sql = 'SELECT * FROM `user` WHERE `id`>?;';
  7. $sql = 'SELECT `id`,`username`,`password`,`age` FROM `user` WHERE `id`>?;';
  8. //把sql語句轉(zhuǎn)為stmt對象
  9. $stmt = $mysqli->prepare($sql);
  10. //給stmt對象綁定變量
  11. $stmt->bind_param('i',$id);
  12. //變量賦值
  13. $id = 3;
  14. //執(zhí)行sql語句
  15. $stmt->execute() or die($stmt->error);
  16. //獲取結(jié)果集
  17. /* $res = $stmt->get_result();
  18. if($res->num_rows === 0) exit('結(jié)果為空'); */
  19. //print_r($res->fetch_assoc());
  20. //1.while遍歷數(shù)據(jù)庫
  21. /* while ($user = $res->fetch_assoc()){
  22. vprintf('%d: %s |%s %d <br> ',$user);
  23. } */
  24. //2.foreach遍歷
  25. /* $users = $res->fetch_all(MYSQLI_ASSOC);
  26. foreach($users as $user){
  27. vprintf('%d:%s*****%s |%d<br>',$user);
  28. } */
  29. //3.對字段進(jìn)行綁定
  30. $stmt->bind_result($id,$username,$password,$age);
  31. while($stmt->fetch()){
  32. printf('%d: %s -----%s***%d<br>',$id,$username,$password,$age);
  33. }
  34. //3.釋放結(jié)果集
  35. //$res->free();
  36. //4.關(guān)閉數(shù)據(jù)庫
  37. $mysqli->close();






二、PDO

1.把數(shù)據(jù)庫連接配置參數(shù)單獨(dú)放到一個(gè)文件,用的時(shí)候直接引用這個(gè)文件

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

2.把數(shù)據(jù)庫連接過程單獨(dú)放到一個(gè)文件,用的時(shí)候直接引用

  1. <?php
  2. //pdo連接數(shù)據(jù)庫
  3. //導(dǎo)入配置參數(shù),就是一個(gè)數(shù)組
  4. $config = require __DIR__ . '/../config.php';
  5. //把數(shù)組拆分成變量
  6. extract($config);
  7. //創(chuàng)建連接對象:連接數(shù)據(jù)庫
  8. try{
  9. //sprintf()返回格式化字符串,不輸出
  10. //設(shè)置dsn數(shù)據(jù)庫類型:主機(jī)名;數(shù)據(jù)庫名;字符集;端口號;
  11. $dsn = sprintf('%s:host=%s;dbname=%s;charset=%s;port=%s',$type,$host,$dbname,$charset,$port);
  12. var_dump($dsn);
  13. //連接數(shù)據(jù)庫
  14. $pdo = new PDO($dsn,$username,$password);
  15. //設(shè)置結(jié)果集的默認(rèn)獲取模式,關(guān)聯(lián)數(shù)組
  16. $pdo ->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
  17. //var_dump($pdo);
  18. }catch(PDOException $e){
  19. echo $e->getMessage();
  20. }catch(Throwable $e){
  21. echo $e->getMessage();
  22. }

3.數(shù)據(jù)庫新增操作

  1. <?php
  2. //pdo新增操作
  3. //1.連接
  4. require "connect.php";
  5. //2.sql語句
  6. $sql = 'INSERT `user` SET `username`=?,`password`=?,`age`=?';
  7. //把sql語句轉(zhuǎn)換為stmt對象
  8. $stmt = $pdo->prepare($sql);
  9. //變量綁定
  10. //bindparam(參數(shù)標(biāo)識符, 變量,指定參數(shù)的類型,類型的長度)
  11. $stmt->bindParam(1,$username,PDO::PARAM_STR,30);
  12. $stmt->bindParam(2,$password,PDO::PARAM_STR,100);
  13. $stmt->bindParam(3,$age,PDO::PARAM_INT,3);
  14. //變量賦值
  15. $username = 't3kl';
  16. $password = md5('8521');
  17. $age = 25;
  18. //執(zhí)行stmt語句
  19. $stmt->execute();
  20. if($stmt->rowCount()>0) echo '新增成功'.$stmt->rowCount.'主鍵ID='.$pdo->lastInsertId();
  21. //3.關(guān)閉數(shù)據(jù)庫連接
  22. $pdo = null;


4.數(shù)據(jù)庫更新操作

  1. <?php
  2. //數(shù)據(jù)庫的更新操作
  3. //1.連接
  4. require "connect.php";
  5. //2.sql語句
  6. $sql = 'UPDATE `user` SET `username`=?,`password`=?,`age`=? WHERE `id`=?';
  7. //把sql語句轉(zhuǎn)換為stmt對象
  8. $stmt = $pdo->prepare($sql);
  9. //將值直接綁定到匿名占位符上
  10. $stmt -> execute(['wang',md5('4444'),24,57]);
  11. if($stmt->rowCount()>0) echo '更新成功'.$stmt->rowCount() .'條記錄';
  12. //3.關(guān)閉數(shù)據(jù)庫連接
  13. $pdo = null;


5.數(shù)據(jù)庫刪除操作

  1. <?php
  2. //數(shù)據(jù)庫的刪除操作
  3. //1.連接
  4. require "connect.php";
  5. //2.sql語句
  6. $sql = 'DELETE FROM `user` WHERE `id`=?';
  7. //把sql語句轉(zhuǎn)換為stmt對象
  8. $stmt = $pdo->prepare($sql);
  9. //將值直接綁定到匿名占位符上
  10. $stmt -> execute([57]);
  11. if($stmt->rowCount()>0) echo '刪除成功'.$stmt->rowCount() .'條記錄';
  12. //3.關(guān)閉數(shù)據(jù)庫連接
  13. $pdo = null;


6.數(shù)據(jù)庫查詢操作

  • fetch() + while()遍歷結(jié)果集
  1. <?php
  2. //數(shù)據(jù)庫的查詢操作
  3. //1.連接
  4. require "connect.php";
  5. //2.sql語句
  6. $sql = 'SELECT `id`,`username`,`password` FROM `user` WHERE `id`>?';
  7. //把sql語句轉(zhuǎn)換為stmt對象
  8. $stmt = $pdo->prepare($sql);
  9. //將值直接綁定到匿名占位符上
  10. $stmt -> execute([30]);
  11. //fetch() + while()遍歷結(jié)果集
  12. while($user = $stmt->fetch()){
  13. vprintf('<li>%d:%s|%s</li>',$user);
  14. }
  15. //3.關(guān)閉數(shù)據(jù)庫連接
  16. $pdo = null;


  • fetchAll() + foreach()遍歷結(jié)果集
  1. //fetchAll() + foreach()
  2. $users = $stmt->fetchAll();
  3. foreach ($users as $user){
  4. vprintf('<li>%d: %s****%s</li>',$user);
  5. }


    1. //將三個(gè)字段與三個(gè)變量進(jìn)行綁定
    2. $stmt->bindColumn('id',$id);
    3. $stmt->bindColumn('username',$username);
    4. $stmt->bindColumn('password',$password);
    5. while($stmt->fetch(PDO::FETCH_BOUND)){
    6. printf('<li>%d: %s | %s</li>',$id,$username,$password);
    7. }


三、學(xué)習(xí)總結(jié)

  • mysqli和pdo的用法大致都是一樣的,首先設(shè)置好數(shù)據(jù)庫連接參數(shù),然后連接數(shù)據(jù)庫,執(zhí)行sql操作語句,把sql語句通過prepare()都轉(zhuǎn)換為stmt對象,然后給stmt對象綁定變量,用bindParam()綁定變量或者bindValue()直接綁定參數(shù),最后用execute()執(zhí)行預(yù)處理語句。
批改老師:天蓬老師天蓬老師

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

老師批語:這些內(nèi)容很重要
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報(bào)處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

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

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