ASCII码 ASCII码

PHP递归函数,MySql建简单用户表,进行增删查改小结

发布于:2022-04-01 12:16:49  栏目:技术文档

1. 递归函数

  • 递归函数: recursion 函数自身调用自身, 但必须调用自身之前有满足特定条件,否则会无线调用下去。
  1. <?PHP
  2. // 递归函数:
  3. // 封闭一个递归函数,删除缓存目录,即要删除所有文件及目录
  4. // 要删除目录首先要打开目录,用opendir(),成功则返回一个资源类型,即目录句柄,失败返回false
  5. // is_dir()判断是否是目录
  6. // php删除目录命令只能删除空目录,即要先删除所有文件
  7. /*
  8. * 参数:目录路径
  9. * 删除指定的目录
  10. *
  11. */
  12. // 原理:判断是否目录->打开目录,取得目录句柄->读取句柄遍历取得资源名称->判断资源名称是目录,是则再调用自身函数,不是则删除文件->
  13. function clear_cache_dir($dir)
  14. {
  15. // 判断路径是否是目录
  16. if (is_dir($dir)) {
  17. // 打开目录,判断是否取得目录资源,即打开目录返回不为false,同时定义变量$handle存放目录资源
  18. if ($handle = opendir($dir)) {
  19. // 从目录资源中读取每个目录和文件,判断读取结果,不为false时,遍历取得资源名称,用$file存放
  20. // 注意,目录名为0时,会判断为false,因此要比较不全等!==
  21. while (($file = readdir($handle)) !== false) {
  22. // 判断资源路径是否是目录
  23. if ($file != '.' && $file != '..') {
  24. if (is_dir($dir . DIRECTORY_SEPARATOR . $file)) {
  25. // 再次调用自身,直到进入最后一层目录
  26. clear_cache_dir($dir . DIRECTORY_SEPARATOR . $file);
  27. } else {
  28. // 不是目录则为文件,执行删除文件
  29. unlink($dir . DIRECTORY_SEPARATOR . $file);
  30. }
  31. }
  32. }
  33. // 遍历所有子目录,删除所有文件后,关闭目录句柄
  34. closedir($handle);
  35. // 删除目录,设置删除标识为true
  36. if (rmdir($dir)) {
  37. return json_encode(['msg' => '清除成功', 'satatus' => 1], 320);
  38. } else {
  39. // 返回json字符串
  40. return json_encode(['msg' => '清除失败', 'satatus' => 0], 320);
  41. }
  42. }
  43. }
  44. }
  45. $dir = __DIR__ . DIRECTORY_SEPARATOR . 'bootstrap';
  46. echo clear_cache_dir($dir);

2. MySql

-设置默认字符集修改my.ini,增加以下内容:[mysql]default-character-set=utf8[mysqld]character-set-server=utf8

  • 建立表news
  1. CREATE TABLE news (
  2. titel varchar(300) NULL COMMENT '标题',
  3. img varchar(300) NULL COMMENT '图片',
  4. content text NULL COMMENT '内容',
  5. date date NULL COMMENT '日期',
  6. class varchar(50) NULL COMMENT '分类'
  7. );
  • 插入数据
  1. INSERT INTO news (titel,img,content,date,class) VALUES ('做好新发展阶段“三农”工作的行动纲领','','做好新发展阶段“三农”工作的行动纲领','2022-3-25','国内要闻');
  2. INSERT INTO news (titel,img,content,date,class) VALUES ('国防部回应“美军F35与歼20近距离接触”','','国防部回应“美军F35与歼20近距离接触”',NOW(),'军事要闻');
  3. INSERT INTO news (titel,img,content,date,class) VALUES ('五年来,雄安的每一天都是新的 奋斗吧!中国','','五年来,雄安的每一天都是新的 奋斗吧!中国',NOW(),'国内要闻');
  4. INSERT INTO news (titel,img,content,date,class) VALUES ('4月1日起油价调整!加满一箱油,将多花4.5元','','4月1日起油价调整!加满一箱油,将多花4.5元',NOW(),'国内要闻');
  5. INSERT INTO news (titel,img,content,date,class) VALUES ('工龄20年纺织大叔测评服装走红:想在老家盖房子','','工龄20年纺织大叔测评服装走红:想在老家盖房子',NOW(),'国内要闻');
  6. INSERT INTO news (titel,img,content,date,class) VALUES ('俄军在俄日争议领土战斗训练 夜间发出罕见闪光轰鸣','','俄军在俄日争议领土战斗训练 夜间发出罕见闪光轰鸣',NOW(),'军事要闻');
  7. INSERT INTO news (titel,img,content,date,class) VALUES ('美国空军期待B-21与B-52CERP轰炸机“搭班作战”','','美国空军期待B-21与B-52CERP轰炸机“搭班作战”',NOW(),'军事要闻');
  • 删除数据

    1. DELETE FROM news WHERE class='军事要闻';
  • 查询— 条件WHERE

    1. SELECT * FROM news WHERE class='军事要闻';
    2. SELECT titel,date FROM news WHERE class='国内要闻';

    — 分页LIMIT

    1. SELECT titel,date FROM news WHERE class='国内要闻' LIMIT 1,3;

— 排序ORDER:ASC 正序(默认)、DESC 倒序

  1. SELECT titel,date FROM news WHERE class='国内要闻' ORDER BY date DESC;
  2. SELECT titel,date FROM news WHERE class='国内要闻' ORDER BY date;
  • 修改
    1. UPDATE news SET class='国际要闻' , img='https://n.sinaimg.cn/mil/crawl/143/w550h393/20220329/50d3-e7cc796b54b235bcb98ef3115ed0dda4.jpg' WHERE titel='俄军在俄日争议领土战斗训练 夜间发出罕见闪光轰鸣';
相关推荐
阅读 +