ホームページ  >  記事  >  バックエンド開発  >  CodeIgniter フレームワーク データベースの基本操作

CodeIgniter フレームワーク データベースの基本操作

无忌哥哥
无忌哥哥オリジナル
2018-07-12 09:11:571909ブラウズ

この記事の例では、CodeIgniter フレームワーク データベースの基本的な操作について説明します。参照用に全員と共有してください。詳細は次のとおりです。

今すぐ開始し、まず CI フレームワークを独自のサーバー ディレクトリに移動し、config/config.php

$config['base_url'] = 'http://localhost:90/CI/';

を構成します。 config/ のデータベースを次のように練習用に設定しました

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'demo';
$db['default']['dbdriver'] = 'mysql';

それ以外の場合、初心者はデータベースとユーザー テーブルを作成する必要はありません。これは私のソース コード パッケージに含まれており、直接インポートできます。ただし、前提条件 デモ データベースを作成したいと考えています。

reg クラスのコードは次のとおりです。

<?php
/***************************************
 * 用户注册模块和数据库的基本操作实践
 * 17:44 2013.2.18
 * @Author sdeep wang
 ***************************************/
class Reg extends CI_Controller{
  function __construct(){//此函数每次必须写是继承父类的方法
    parent::__construct();
    $this->load->database();//这个是连接数据库的方法,放到这里的好处只要调用该方法就会连接数据库
  }
  function index(){
    $this->load->view(&#39;reg_view&#39;);//这个是使用哪个视图来显示相当于Smarty中的display
  }
  function reg_insert(){
    $data[&#39;name&#39;] = $this->input->post(&#39;name&#39;);//这个是指取得POST数组的值然后赋值一个心的数组
    $data[&#39;sex&#39;] = $this->input->post(&#39;sex&#39;);
    $data[&#39;age&#39;] = $this->input->post(&#39;age&#39;);
    $data[&#39;pwd&#39;] = md5($this->input->post(&#39;pwd&#39;));//这里用了一个md5加密只是为了演示
    $data[&#39;email&#39;] = $this->input->post(&#39;email&#39;);
    $this->db->insert(&#39;user&#39;,$data);//这个是数据库操作插入操作
    redirect(&#39;/reg/reg_select/&#39;, &#39;refresh&#39;);//这个是跳转函数是url辅助函数里面的一个方法
  }
  function reg_select(){//这个查询数据库的方法
    $this->db->select(&#39;id,name,sex,age,email&#39;);//这里是查询要显示的字段,可不能像我第一次这样写啊$this->db->select(&#39;id&#39;,&#39;name&#39;,&#39;sex&#39;,&#39;age&#39;,&#39;email&#39;);
    $data[&#39;query&#39;] = $this->db->get(&#39;user&#39;);//这个是取得数据(如果你上面写的和我第一次一样的话只能取的一个字段)
    $this->load->view(&#39;select_view&#39;,$data);//这里是调用哪个视图并分配数据给指定视图显示
  }
  function reg_delete(){//删除数据的操作
    $id = $this->input->get(&#39;id&#39;);//这里是取得get传过来的值
    $this->db->where(&#39;id&#39;,$id);//这里是做where条件这个相当重要,如果没有这个你有可能把这个表数据都清空了
    $this->db->delete(&#39;user&#39;);//删除指定id数据
    redirect(&#39;/reg/reg_select/&#39;, &#39;refresh&#39;);//同上跳转
  }
  function reg_update(){//跟新数据的操作
    $data[&#39;id&#39;] = $this->input->get(&#39;id&#39;);//同上取的get传值过来的ID
    $this->load->view(&#39;update_view&#39;,$data);//同上调用视图分配数据
  }
  function reg_com_update(){//这个是真正的跟新数据操作方法
    $id = $this->input->post(&#39;id&#39;);//同上取得post中的id值
    $data = array(//把post数组的值封装到新的数组中为了下面跟新操作用
          &#39;name&#39;=>$this->input->post(&#39;name&#39;),
          &#39;pwd&#39;=>md5($this->input->post(&#39;pwd&#39;)),
          &#39;email&#39;=>$this->input->post(&#39;email&#39; )
        );
    if(!empty($id) && (count($data) > 1)){//判断id值是否传过来并且判断封装的数组是否有元素存在
      $this->db->where(&#39;id&#39;,$id);//同上准备where条件
      $this->db->update(&#39;user&#39;,$data);//跟新操作
    }
    redirect(&#39;/reg/reg_select/&#39;, &#39;refresh&#39;);//同上跳转
  }
}
?>

ビューのコードは次のとおりです。

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>用户注册</title>
  </head>
  <body>
    <form action="<?php echo site_url(&#39;reg/reg_insert/&#39;); ?>" method="post">
      <table>
        <tr>
          <td>
            姓名:<input type="text" name="name" />
          </td>
        </tr>
        <tr>
          <td>
            姓别:<input type="radio" name="sex" value="1" />男
               <input type="radio" name="sex" />女
          </td>
        </tr>
        <tr>
          <td>
            年龄:<input type="text" name="age" />
          </td>
        </tr>
        <tr>
          <td>
            密码:<input type="password" name="pwd" />
          </td>
        </tr>
        <tr>
          <td>
            邮件:<input type="text" name="email" />
          </td>
        </tr>
        <tr>
          <td>
            <input type="submit" value="注册" />
            <input type="reset" value="重置" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

2 番目のビューのコードは次のとおりです。

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>显示数据库中的所有注册用户</title>
    <style>
      *{
        margin:0 auto;
      }
      table {
        border:1px solid gray;
        border-collapse: collapse;
        width:500px;
        text-align:center;
      }
      th,td {
        border:1px solid gray;
      }
    </style>
  </head>
  <body>
    <table>
      <caption><h3>注册用户的显示</h3></caption>
      <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Sex</th>
        <th>Age</th>
        <th>Email</th>
        <th>Operate</th>
      </tr>
      <?php foreach($query->result() as $item):?>
      <tr>
        <td><?php echo $item->id; ?></td>
        <td><?php echo $item->name; ?></td>
        <td><?php echo $item->sex; ?></td>
        <td><?php echo $item->age; ?></td>
        <td><?php echo $item->email; ?></td>
        <td>
          <a href="<?php echo site_url(&#39;reg/reg_delete&#39;);?>?id=<?php echo $item->id;?>" rel="external nofollow" >删除</a> |
          <a href="<?php echo site_url(&#39;reg/reg_update&#39;);?>?id=<?php echo $item->id;?>" rel="external nofollow" >修改</a>
        </td>
      </tr>
      <?php endforeach; ?>
    </table>
  </body>
</html>
第三个视图如下
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>修改用户注册信息</title>
  </head>
  <body>
    <form action="<?php echo site_url(&#39;reg/reg_com_update&#39;);?>" method="post">
      <table>
        <tr>
          <td>姓名:<input type="text" name="name" /></td>
        </tr>
        <tr>
          <td>密码:<input type="password" name="pwd" /></td>
        </tr>
        <tr>
          <td>邮件:<input type="text" name="email" /></td>
        </tr>
        <tr>
          <td>
            <input type="submit" value="修改" />
            <input type="hidden" name="id" value="<?php echo $id; ?>" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

レンダリングは次のとおりです

CodeIgniter フレームワーク データベースの基本操作

以上がCodeIgniter フレームワーク データベースの基本操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。