免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2243 | 回复: 0
打印 上一主题 下一主题

创建数据库, 实现CRUD [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-14 16:28 |只看该作者 |倒序浏览
创建数据库, 实现CRUD
   
   




- 说明
        为了在最短的时间内创建个原型(prototype), 采用用 Vertical Slice (VS) 最佳实践。 VS是应用程序的纵切面。 比如对我们要实现的原型来说,就是创建 View,Controller 和 Module, 来实现一个 blog 的最小的功能, 比如创建 blog
        
   
    - 创建数据库
        - 用 phpMyAdmin 创建数据库 blueblog
   
   
    - sql

Sql代码
  1. 1.DROP TABLE IF EXISTS `blog`;   
  2. 2.         
  3. 3.CREATE TABLE IF NOT EXISTS `blog` (   
  4. 4.          `id` int(10) unsigned NOT NULL AUTO_INCREMENT,   
  5. 5.          `content` varchar(255) NOT NULL,   
  6. 6.          `createdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,   
  7. 7.          PRIMARY KEY (`id`)   
  8. 8.) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  
  9. DROP TABLE IF EXISTS `blog`;
  10.       
  11. CREATE TABLE IF NOT EXISTS `blog` (
  12.           `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  13.           `content` varchar(255) NOT NULL,
  14.           `createdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  15.           PRIMARY KEY (`id`)
  16. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  
复制代码
- 配置 CI 的 DB
        C:\ws\php\phplab\BlueBlog\application\config\database.php

Php代码
  1. 1.$db['default']['hostname'] = 'localhost';   
  2. 2.$db['default']['username'] = 'root';   
  3. 3.$db['default']['password'] = '换成自己的密码';   
  4. 4.$db['default']['database'] = 'blueblog';  
  5. $db['default']['hostname'] = 'localhost';
  6. $db['default']['username'] = 'root';
  7. $db['default']['password'] = '换成自己的密码';
  8. $db['default']['database'] = 'blueblog';  
  9.         
复制代码
- 创建 controller
        - C:\ws\php\phplab\BlueBlog\application\controllers\blog.php

Php代码
  1. 1.<?php if (!defined('BASEPATH')) exit('No direct script access allowed');   
  2. 2.  
  3. 3.            class Blog extends CI_Controller   
  4. 4.            {   
  5. 5.                  
  6. 6.                public function create()   
  7. 7.                {   
  8. 8.                    $content = urldecode($this->uri->segment(3, "Default content")); // 这里使用了 CI 的 URI lib, 用来解析从 URL 传过来的参数。   
  9. 9.                    $blog = array($content);   
  10. 10.                     
  11. 11.                    $sql = "INSERT INTO blog (content) VALUES (?)"; // SQL ?ϣ   
  12. 12.                     
  13. 13.                    $this->load->database(); // 加载 数据库   
  14. 14.                    $this->db->query($sql, $blog); // 执行 SQL   
  15. 15.                }   
  16. 16.            }?>  
  17. <?php if (!defined('BASEPATH')) exit('No direct script access allowed');

  18.             class Blog extends CI_Controller
  19.             {
  20.                
  21.                 public function create()
  22.                 {
  23.                     $content = urldecode($this->uri->segment(3, "Default content")); // 这里使用了 CI 的 URI lib, 用来解析从 URL 传过来的参数。
  24.                     $blog = array($content);
  25.                   
  26.                     $sql = "INSERT INTO blog (content) VALUES (?)"; // SQL ?ϣ
  27.                   
  28.                     $this->load->database(); // 加载 数据库
  29.                     $this->db->query($sql, $blog); // 执行 SQL
  30.                 }
  31.             }?>  
复制代码
- 测试 VS
        - http://127.0.0.1/blueblog/index.php/blog/create/Blue blog test content
            这里注意下 CI 的 URL mapping: blog/create/Blue blog test content => controller class/function/param
               
                输入上面的URL, 回车, 查数据表, yes! 数据创建成功
                id     content     createdate
                1     Blue blog test content     2011-05-30 14:34:48
               
               
    - 为 blog 添加 view 和其他操作
        - CRUD
            
        - 创建 view
            - C:\ws\php\phplab\BlueBlog\application\views\blog.php
                ---------------------------------------------- CS

Html代码
  1. 1.<!DOCTYPE html>  
  2. 2.                    <html lang="en">  
  3. 3.                    <head>  
  4. 4.                    <meta charset="utf-8">  
  5. 5.                    <title>Blog List</title>  
  6. 6.                    </head>  
  7. 7.                    <body>  
  8. 8.                    <h1>Blog List</h1>  
  9. 9.                    <code> <?php  
  10. 10.                    if($list){   
  11. 11.                        foreach ($list as $row)   
  12. 12.                        {   
  13. 13.                            echo $row->id. " | " . $row->content. " | " . $row->createdate . "<br/>";   
  14. 14.                        }   
  15. 15.  
  16. 16.                        echo 'Total Results: ' . $num_rows;   
  17. 17.                    }   
  18. 18.                    ?> </code>  
  19. 19.                    <p><br />  
  20. 20.                    Page rendered in {elapsed_time} seconds</p>  
  21. 21.  
  22. 22.                    </body>  
  23. 23.                    </html>  
  24. <!DOCTYPE html>
  25.                     <html lang="en">
  26.                     <head>
  27.                     <meta charset="utf-8">
  28.                     <title>Blog List</title>
  29.                     </head>
  30.                     <body>
  31.                     <h1>Blog List</h1>
  32.                     <code> <?php
  33.                     if($list){
  34.                         foreach ($list as $row)
  35.                         {
  36.                             echo $row->id. " | " . $row->content. " | " . $row->createdate . "<br/>";
  37.                         }

  38.                         echo 'Total Results: ' . $num_rows;
  39.                     }
  40.                     ?> </code>
  41.                     <p><br />
  42.                     Page rendered in {elapsed_time} seconds</p>

  43.                     </body>
  44.                     </html>  
复制代码
---------------------------------------------- CE
               
        - Controller 实现读操作
            - C:\ws\php\phplab\BlueBlog\application\controllers\blog.php
                在 controller 里添加读操作
                ---------------------------------------------- CS

Php代码
  1. 1.public function read()   
  2. 2.{   
  3. 3.    $this->load->database();   
  4. 4.    $query = $this->db->query('SELECT * FROM `blog`');   
  5. 5.      
  6. 6.    $blog = array();   
  7. 7.    $blog['list'] = $query->result();   
  8. 8.    $blog['num_rows'] = $query->num_rows();   
  9. 9.  
  10. 10.    $this->load->view('blog', $blog);   
  11. 11.}  
  12.                     public function read()
  13.                     {
  14.                         $this->load->database();
  15.                         $query = $this->db->query('SELECT * FROM `blog`');
  16.                        
  17.                         $blog = array();
  18.                         $blog['list'] = $query->result();
  19.                         $blog['num_rows'] = $query->num_rows();

  20.                         $this->load->view('blog', $blog);
  21.                     }  
复制代码
---------------------------------------------- CE
               
        - http://127.0.0.1/blueblog/index.php/blog/read
            测试下
            
            
        - 嫌页面丑的加点儿 CSS
            
            ---------------------------------------------- CS

Java代码
  1. 1.<style type="text/css">   
  2. 2.  body {   
  3. 3.      background-color: #fff;   
  4. 4.      margin: 40px;   
  5. 5.      font-family: Lucida Grande, Verdana, Sans-serif;   
  6. 6.      font-size: 14px;   
  7. 7.      color: #4F5155;   
  8. 8.  }   
  9. 9.  
  10. 10.  a {   
  11. 11.      color: #003399;   
  12. 12.      background-color: transparent;   
  13. 13.      font-weight: normal;   
  14. 14.  }   
  15. 15.  
  16. 16.  h1 {   
  17. 17.      color: #444;   
  18. 18.      background-color: transparent;   
  19. 19.      border-bottom: 1px solid #D0D0D0;   
  20. 20.      font-size: 16px;   
  21. 21.      font-weight: bold;   
  22. 22.      margin: 24px 0 2px 0;   
  23. 23.      padding: 5px 0 6px 0;   
  24. 24.  }   
  25. 25.  
  26. 26.  code {   
  27. 27.      font-family: Monaco, Verdana, Sans-serif;   
  28. 28.      font-size: 12px;   
  29. 29.      background-color: #f9f9f9;   
  30. 30.      border: 1px solid #D0D0D0;   
  31. 31.      color: #002166;   
  32. 32.      display: block;   
  33. 33.      margin: 14px 0 14px 0;   
  34. 34.      padding: 12px 10px 12px 10px;   
  35. 35.  }   
  36. 36.  </style>  
  37.               <style type="text/css">
  38.                 body {
  39.                     background-color: #fff;
  40.                     margin: 40px;
  41.                     font-family: Lucida Grande, Verdana, Sans-serif;
  42.                     font-size: 14px;
  43.                     color: #4F5155;
  44.                 }

  45.                 a {
  46.                     color: #003399;
  47.                     background-color: transparent;
  48.                     font-weight: normal;
  49.                 }

  50.                 h1 {
  51.                     color: #444;
  52.                     background-color: transparent;
  53.                     border-bottom: 1px solid #D0D0D0;
  54.                     font-size: 16px;
  55.                     font-weight: bold;
  56.                     margin: 24px 0 2px 0;
  57.                     padding: 5px 0 6px 0;
  58.                 }

  59.                 code {
  60.                     font-family: Monaco, Verdana, Sans-serif;
  61.                     font-size: 12px;
  62.                     background-color: #f9f9f9;
  63.                     border: 1px solid #D0D0D0;
  64.                     color: #002166;
  65.                     display: block;
  66.                     margin: 14px 0 14px 0;
  67.                     padding: 12px 10px 12px 10px;
  68.                 }
复制代码
</style>  
            ---------------------------------------------- CE

    - CR 完了, 剩下的也不难了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP