ci 基础知识

//建立虚拟主机

2、下载完毕后,解压,并将其复制粘贴到程序的主目录(d:/wamp/xmall/),然后再将其重命名为"myshop",那么"myshop" 就作为ci项目名称存在了

3、为我们的ci项目搭建一个虚拟主机:

首先,找到httpd.conf配置文件,开启虚拟主机的配置

然后,找到httpd-vhosts.conf配置文件,进行虚拟主机的配置

最后,找到hosts配置文件,为我们的ci项目添加dns映射

4、在浏览器中输入 http://www.myshop.com/index.php 回车,如能看到如下欢迎界面,则表示我们的ci项目安装成功了

1 建立控制器的时候是外小内大
也就是:注意书写习惯,2 注意加载视图的时候的数组参数

blog.php (控制器名称)
class Blog extends CI_Controller{

//调用视图,注意:视图必须用php结尾,并且如果有数据传入,视图只能识别出数组的名字$title,不能识别$data[‘title‘];
$this->load->view(‘blogview‘,‘$data‘);
}
不能以_开头,这是私有方法

视图:
1 如果在控制器中加载了视图,那么直接写控制器的加载方法:
$this->load->view(视图); //注意:视图直接写名字不带后缀,如果是在文件夹下,那么应该是
$this->load->vlew(文件夹/视图);
视图可以多次加载,例如头部和尾部分开
2 视图中直接使用php原生代码
3 给视图分配变量
$list =array(
array(‘id‘=>1,‘name‘=>‘jack‘,‘email‘=>‘[email protected]‘),
array(‘id‘=>2,‘name‘=>‘lili‘,‘email‘=>‘[email protected]‘),
array(‘id‘=>3,‘name‘=>‘lucy‘,‘email‘=>‘[email protected]‘),
);
$data[‘title‘]=‘数组标题‘;
$data[‘list‘]=$list;
$this->load->vars($data);
4 推荐使用 ,包括if ,if else 等等,因为这是模板专用写法
<?php foreach($list as $item) : ?>
<?=$item[‘name‘]?>
<?php endforeach?>

$this->load->vars(‘key‘,‘value‘);
<?php
class User extends CI_Controller
{
public function index()
{
//给视图分配变量
$this->load->vars(‘title‘,‘这是标题‘);
//加载视图
$this->load->view(‘user/index‘);
}
}
?>

建立文件夹user/index的源代码
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<?php
echo ‘这是user文件夹下面的文件‘;
echo "<br/>";
echo $title;
?>
</body>
</html>

注意:要先传递数组,再进行页面的渲染
1 控制器的写法 思路:设置变量,分配变量,加载视图
<?php
class User extends CI_Controller {

public function index()
{
//给视图分配变量
//$this->load->vars(‘title‘,‘这是标题‘);
//加载视图
$list =array(
array(‘id‘=>1,‘name‘=>‘jack‘,‘email‘=>‘[email protected]‘),
array(‘id‘=>2,‘name‘=>‘lili‘,‘email‘=>‘[email protected]‘),
array(‘id‘=>3,‘name‘=>‘lucy‘,‘email‘=>‘[email protected]‘),
);
$data[‘title‘]=‘数组标题‘;
$data[‘list‘]=$list;
$this->load->vars($data);
$this->load->view(‘user/index‘);
}

}
?>

2 视图文件写法 思路:获取变量,用foreach循环出来
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<?php
echo ‘这是user文件夹下面的数据‘;
echo "<br/>";
echo $title;
?>
<table border="1">
<tr>
<td>编号</td>
<td>姓名</td>
<td>邮件</td>
</tr>
<?php foreach ($list as $item): ?>
<tr>
<td><?=$item[‘id‘]?></td> // 注意:等价于<?php echo item[‘id‘]?>
<td><?=$item[‘name‘]?></td>
<td><?=$item[‘email‘]?></td>
</tr>
<?php endforeach;?>
</table>
</body>
</html>

CI的超级对象(controller 对象)
也就是当前的控制器对象$this
打印下 var_dump($this)

$this->load (装载器)
打印下属性var_dump($this->load) \system\core
文件在库文件core下面可以查看,CI会自动实例化一个Loader对象,来放在超级对象中
$this->load,就是装载器类,实际上例如$this->load->view()
相当于 $obj=new CI_Loader();
$this->load=$this
$this->load->view()等价于new CI_Loader()->view();

$this->load提供的方法包括:
view()方法 装载视图
vars()方法 分配变量到视图
database() 装载数据库操作对象
model() 装载模型对象
helper() 加载帮助对象

$this->uri (URL解析相关的对象) \system\core
提供的方法包括:
1 首先传统的get传参数方式是怎样的
http://localhost/ci/index.php/welcome?id=5
然后echo $_GET[‘id‘],那么就输出了5

2 现在是pathinfo模式,那么如何获取到id?
http://localhost/ci/index.php/welcome/index/id/1
那么就是用uri
$this->uri->segment(3);
那么获取到的就是id

$this->input
提供方法:
$this->input->post(‘username‘); 获取到post过来的数据 $_POST[‘username‘],为什么用这个,因为比较安全
$this->input->server(‘REMOT_ADDR‘); 获取IP地址 $_SERVER[‘REMOTE_ADDR‘]
$this->input->server(‘DOCUMENT_ROOT‘); 获取根目录信息 $_SERVER[‘DOCUMENT_ROOT‘]

注意:在视图中,也可以直接使用$this来获取超级对象

数据库访问
1 修改配置文件 application\config\database.php,里面默认是default

1 装载数据库操作类
2 开始使用数据库操作类
3 执行数据库语句获得结果集类
4 执行结果集类方法返回结果

显示:
public function showusers() //包含两步:1 获取数据 2 传递给视图
{

//装载数据库操作类,因为不是必要的,所以是有选择地装载!
$this->load->database(); //如果你想操作多个数据库,那么就选择$this->load->database(‘另一个数据库‘);
//显示这个操作类,装载成功后,会放入超级对象的属性中,默认属性名是db
//var_dump($this->db);
$sql=‘select * from xqcx ‘;
$res = $this->db->query($sql); //返回对象
//var_dump($res);
$result=$res->result(); //返回数据
//var_dump($result); //打印数据

//把数据传递到视图中去
$data[‘list‘]=$result;
%this->load->view(‘user/index‘,$data);

}

增加/删除/修改/查询: 使用最常见的query方法
public function add(){
$this->load->database();
$sql="insert into xqcx(ssxq, xqname) values(‘我的小区‘,‘测试小区‘)";
$bool=$this->db->query($sql);
if($bool)
{
echo ‘受影响行数‘.$this->db->affected_rows();
echo ‘自增id‘.$this->db->insert_id();
}
}

public function update(){
$data[0]=$this->input->post[‘name‘];
$data[1]=$this->input->post[‘password‘];
$sql="update xqcx(ssxq,xqname) values(?,?)";
$bool=$this->db->query($sql,$data);
if($bool)
{
echo ‘受影响行数‘.$this->db->affected_rows();
echo ‘自增id‘.$this->db->insert_id();
}
}

注意:如果每次都加载数据库 $this->load->database(); 很麻烦的话,那么就去配置文件里面修改
application\config 下面的antoload.php里面
$autoload[‘libraries‘] = array(‘database‘);

AR模型
AR模型的引入是为了简化对基础数据库的操作,开启AR模型是指
//$autoload[‘libraries‘] = array(‘database‘); 先开启自动加载数据库
//active_group=true; 默认状态下是开启AR模型的

//1 查询
public function get(){
$query = $this->db->get(‘xqcx‘); //返回结果集对象
foreach ($query->result() as $item){
echo $item->ssxq;
echo ‘<br>‘;
//echo $item->xqname;
}
}

//插入
public function insert()
{
$data=array(‘ssxq‘=>‘测试小区1‘,‘xqname‘=>‘小区名称‘);
$bool=$this->db->insert(‘xqcx‘,$data);
if($bool)
{
echo ‘插入成功!‘;
}else
{
echo ‘插入失败!‘;
}
}

//更新第334行的数据
public function update()
{
$data=array(‘ssxq‘=>‘测试小区2‘,‘xqname‘=>‘小区名称‘);
$bool=$this->db->update(‘xqcx‘,$data,array(‘id‘=>334));;
if($bool)
{
echo ‘更新成功!‘;
}else
{
echo ‘更新失败!‘;
}
}

//删除
public function delete(){
$bool=$this->db->delete(‘xqcx‘,array(‘id‘=>334));
if($bool)
{
echo ‘删除成功!‘;
}else
{
echo ‘删除失败!‘;
}
}

AR中的连贯操作,所谓的连贯操作,就是指应对复杂的SQL语句
public function ar(){
$query =$this->db->select(‘ssxq,xqname‘)
->from(‘xqcx‘)
->where(‘id >=‘,3)
->limit(2,3)
->order_by(‘id desc‘)
->get();
var_dump($query->result());
}

//注意:这个>号前面一定要有空格
//->limit(2,3) ,跳过3条取2条
//为了便于比较,我们查看下最后的一条查询语句
//结果是 SELECT `ssxq`, `xqname` FROM (`xqcx`) WHERE `id` >= 3 ORDER BY `id` desc LIMIT 3, 2
//echo $this->db->last_query();

CI控制器的扩展
有什么作用:例如,做登录验证
\www\ci\application\core 在这个下面写上自己的控制器基类
自定义一个控制器,放在\www\ci\application\core 目录下,名字叫做MY_Controller
<?php
class MY_Controller extends CI_Controller()
{
function __construct()
{
parent::__construct();
echo ‘测试控制器1‘;

//登录验证
//权限验证
}
}
?>

然后在Controllers 文件夹下面新建一个newwelcome类来继承我自己写的控制器,注意:开头都以MY_开头

<?php
class Newwelcome extends MY_Controller{
public function index()
{
echo ‘123‘;
}
}
?>

模型
1 新建一个user模型,名字为uer_model.php 内部类的命名方法为User_Model ,注意:一定要小写
2 CI Model类的方法其实相当简单,主要是用来规范我们的项目开发
1 构造方法
2 可以引用超级对象$this->里面的所有的类的方法
3 以后所有的$this->db方法都写在里面

完整的MVC方式怎么写?

1 创建模型
<?php
class User_Model extends CI_Model {

public function getAll()
{
$query=$this->db->get(‘xqcx‘);
return $query->result();
}
}
?>

2 控制器中加载模型

<?php
class User extends CI_Controller {

public function index()
{
//1 加载模型
$this->load->model(‘User_Model‘);
//2 调用模型中的方法获取数据
$list=$this->User_Model->getAll();
//3 传递关联数组给视图
$this->load->view(‘user/usertest‘,array(‘list‘=>$list));
}
?>

注意:也可以给模型起别名,那么User_Model 就被叫做user了
$this->load->modle(‘User_Model‘,‘user‘);
$this->user->getAll();

3 视图显示

<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<?php
var_dump($list);
?>
</body>
</html>

CI中有关URl的函数
有时候URL不能写死,那么怎么办,通过系统提供的URL相关函数来进行
快捷操作:复制当前行:CTRL+D
快速补全代码,使用quicktext
注意:使用时语言设置成html
例如:dtd + ctrl enter 即可补全HTML代码
例如:in + ctrl enter 即可补全input代码

重要问题:
如何做比如登录页面的操作
1 在控制器中设计一个方法用来显示视图

public function loginshow()
{
$this->load->view(‘user/login‘);
}

2 在视图中post数据到控制器中的另外一个方法 ,注意:这边写的action 都是绝对路径,所以要进行修改
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<link rel="stylesheet" href="style/.css" type="text/css" />
</head>
<body>
<form action="/ci/index.php/user/logininsert" method="post" >
name <input type="text" value="" name="name"/><br>
password <input type="password" value="" name="password" /><br>
E-mail <input type="text" value="" name="email" /><br>
<input type="submit" value="submit" />
</form>

</body>
</html>

3 在另外一个方法中进行数据的操作,例如var_dump等等

public function logininsert()
{
var_dump($this->input->post(‘name‘));

}

使用site_url函数进行简化
目标site_url(‘控制器/方法‘),设置url的访问
1 首先加载helper里面的URL,注意:关键是你在初始化的页面进行加载这个helper
public function loginshow()
{
$this->load->helper(‘url‘);
$this->load->view(‘user/login‘);
}
2 使用site_url函数进行替换
原来<form action="/ci/index.php/user/logininsert" method="post" >
<form action="<?php echo site_url(‘user/logininsert‘)?>"

site_url代表的路径是http://localhost/ci/index.php/

3 使用base_url做文件的上传,设置访问的路径

base_url代表的路径是http://localhost/ci/
建立一个uploads文件下,下面存放这张flash图片
<img src="<?php echo base_url();?>uploads/flash.jpg" width="120" />

配置自动加载
D:\wampserver\wamp\www\ci\application\config
$autoload[‘helper‘] = array(‘url‘);

设置路由 (可以设置伪静态)

路由的路径:
配置文件:ci/application/config/routes.php
默认控制器:
$route[‘default_controller‘] = "welcome";

规则:设置正则表达式,可以定制URL
例如我想要的URL是http://localhost/ci/index.php/news/201309/4.html
我的实际控制器是article/show/$1
那么我写路由的规则就是
$route[‘news/[\d]{6}/([\d]+\.html)‘]=‘article/show/$1‘;神马意思?不明白!!

如何去掉index.php?
必须要进入到Apache里面,进行修改
复制里面的,htaccess 文件,复制到CI的跟目录下
去掉里面的index,php

还是出错?
修改httpd.conf 文件,使其的rewrite属性打开

设置分页
//分页显示 ,注意:分页类是最常见的类
//思路:1 调用分页类并且正确显示,获取分页类里面的参数:1 偏移量 2 每页数量
// 2 根据这两个分页量去生成SQL语句,应用到查询 ,SQL语句的原型是select * from 表名 limit 偏移量 ,每页数量
// 3 显示出来数据
// 4 完善:1 查询数据库的全量并且赋值 2 做分页的美化和优化 3 如何和model类结合来进行设置 4 显示页面的美化
// 那么,其实设计的思路是分页------->数据库---------->显示内容

public function fenye( )
{
//创建分页对象并且初始化
$this->load->library(‘pagination‘);
$this->load->helper(‘url‘);

//配置分页类文件,也就是超链接下面的url地址
$page_size=10;
$config[‘base_url‘] =site_url(‘user/fenye‘);
$config[‘per_page‘]=$page_size;
$config[‘total_rows‘]=200;
$config[‘first_link‘] = ‘首页‘;
$config[‘last_link‘] = ‘末页‘;
$config[‘prev_link‘] = ‘上一页‘;
$config[‘next_link‘] = ‘下一页‘;
$this->pagination->initialize($config);

//做偏移量的设置,做数据库语句的设置生成
$offset=intval($this->uri->segment(3));
$sql="select * from xqcx limit $offset ,$page_size ";
$query = $this->db->query($sql);
$result=$query->result();

//查询出来的结果集和这个分页的链接都传递到页面上去
$data[‘user_result‘]=$result;
$data[‘links‘]= $this->pagination->create_links();
$this->load->view(‘user/fenye‘,$data);
}

前台显示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<link rel="stylesheet" href="style/.css" type="text/css" />
</head>
<body>
<h1>分页测试</h1>
<?php var_dump($user_result) ?>
<?php echo $links?>
</body>
</html>

文件上传
1 需要前台手动创建一个upload目录,这个目录是在根目录的同级目录下
2 显示上传页面
public function file(){
$this->load->helper(‘url‘);
$this->load->view(‘user/file‘);
}

3 上传页面,做好action动作,注意配置 enctype="multipart/form-data"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<link rel="stylesheet" href="style/.css" type="text/css" />
</head>
<body>
<form action="<?php echo site_url(‘user/upload‘) ?> " method="post" enctype="multipart/form-data" >
<input type="file" name="pic" />
<input type="submit" value="上传" />
</form>

</body>
</html>

4 在控制器中做上传
public function upload(){
//配置当前的上传参数
$config[‘upload_path‘] = ‘./uploads/‘;
$config[‘allowed_types‘] = ‘gif|jpg|png|jpeg‘;
$config[‘file_name‘]=uniqid();
//调用上传文件的类和方法
$this->load->library(‘upload‘,$config);
$this->upload->do_upload(‘pic‘);
//对调用结果进行判断,打印数组
//var_dump ($this->upload->data()) ;
$data=$this->upload->data();
echo $data[‘file_name‘];
}

session
ci的session 是放在cookie里面的,最多不能放超过4K的数据
session 类一般是初始化以后就可以使用了,时长5分钟
public function getsession()
{
//生成随机的字符串作为加密用的key
//在这个之前,首先开启配置文件中的加密key,路径是www\ci\application\config
//echo md5(uniqid());exit;
//找到那一行,$config[‘encryption_key‘] = ‘08eecdf63ec31d37a6ae1f24f11382ef‘;然后就可以注释掉
//注意,底下还有很多对于session的加密配置可以修改
$this->load->library(‘session‘);
$user=array(‘id‘=>3,‘name‘=>‘jack‘);
$this->session->set_userdata(‘user‘,$user);
}

public function showsession()
{
$this->load->library(‘session‘);
$user=$this->session->userdata(‘user‘);
var_dump($user);

}

验证码

public function yanzheng()
{
$this->load->helper(‘captcha‘);
$this->load->helper(‘url‘);
$vals = array(
//‘word‘ => ‘Random word‘,
‘word‘ =>rand(1000,9999),
‘img_path‘ => ‘./captcha/‘,
‘img_url‘ => base_url().‘captcha/‘,
‘font_path‘ => ‘./path/to/fonts/texb.ttf‘,
//‘img_width‘ => ‘50‘,
//‘img_height‘ => 30,
//‘expiration‘ => 7200 图片存在的时间
);
$cap = create_captcha($vals);
echo $cap[‘image‘];
//var_dump($cap);
//传递图片给登录页面来使用
//$this->load->view(‘index‘,array(‘cap‘=>‘$cap[‘image‘]‘));

//如何验证
//session_start();
//$_SESSION[‘cap‘]=$cap[‘word‘];
}

表单辅助函数
注意:其实只需要一个insert方法就可以了,不需要以前那么复杂的add方法

public function logininsert()
{
//var_dump($this->input->post(‘name‘));
$this->load->library(‘form_validation‘);
$this->form_validation->set_rules(‘name‘, ‘用户名‘, ‘required‘);
$this->form_validation->set_rules(‘password‘, ‘密码‘, ‘required‘);
$this->form_validation->set_rules(‘email‘, ‘邮箱‘, ‘required|valid_email‘);
$bool=$this->form_validation->run() ;
if($bool){
//进行数据的判断和验证

}else{
$this->load->view(‘user/login‘);
}

}

至于前台的页面也要设计

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<link rel="stylesheet" href="style/.css" type="text/css" />
</head>
<body>
<?php echo validation_errors(); ?>
<form action="<?php echo site_url(‘user/logininsert‘)?>" method="post" >
name <input type="text" value="<?php echo set_value(‘name‘); ?>" name="name"/> <?php echo form_error(‘name‘,‘<span>‘,‘</span>‘); ?> <br>
password <input type="password" value="<?php echo set_value(‘password‘); ?>" name="password" /><?php echo form_error(‘password‘,‘<span>‘,‘</span>‘); ?> <br>
E-mail <input type="text" value="<?php echo set_value(‘email‘); ?>" name="email" /><?php echo form_error(‘email‘,‘<span>‘,‘</span>‘); ?> <br>
<input type="submit" value="submit" />
</form>
<img src="<?php echo base_url();?>/uploads/flash.jpg" width="120" />
</body>
</html>

时间: 2024-08-29 23:55:08

ci 基础知识的相关文章

转:正则表达式基础知识

一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.如: JScript VBScript 匹配 /^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行. /\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成. /<(.*)&

Oracle数据库基础知识

oracle数据库plsql developer 目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外键 创建删除索引 创建修改删除视图 二     SQL查询 基本的SQL语句 unionminusintersect 内连接外连接 子查询关联子查询 betweeninexists 复制表insert into selectselect into from 三     SQL查询优化 尽量少用 IN 操

【RAC】RAC相关基础知识

[RAC]RAC相关基础知识 1.CRS简介    从Oracle 10G开始,oracle引进一套完整的集群管理解决方案—-Cluster-Ready Services,它包括集群连通性.消息和锁.负载管理等框架.从而使得RAC可以脱离第三方集群件,当然,CRS与第三方集群件可以共同使用. (1).CRS进程 CRS主要由三部分组成,三部分都作为守护进程出现 <1>CRSD:资源可用性维护的主要引擎.它用来执行高可用性恢复及管理操作,诸如维护OCR及管理应用资源,它保存着集群的信息状态和OC

php基础知识(5)正则表达式

一.匹配次数 (1) *     匹配前面的子表达式零次或多次 (2) +     匹配前面的子表达式一次或多次,+ 等价于 {1,} (3) ?     匹配前面的子表达式零次或一次,? 等价于 {0,1} (4){n}    n 是一个非负整数,匹配确定的n 次 (5){n,}   n 是一个非负整数,至少匹配n 次 (6){n,m}  m 和 n 均为非负整数,最少匹配 n 次且最多匹配 m 次.在逗号和两个数之间不能有空格 二.匹配值 (1) x|y    匹配 x 或 y (2)[xy

Kubernetes 第一章 基础知识

Kubernetes 第一章 基础知识 Kubernetes是一个开源容器编排引擎,用于自动化容器化应用程序的部署,扩展和管理.开源项目由Cloud Native Computing Foundation(CNCF)托管. Kubernetes是一个可移植,可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明性配置和自动化.它拥有庞大,快速发展的生态系统.Kubernetes服务,具有广泛的工具和支持可用. 发展历程 传统部署时代: 早期,组织在物理服务器上运行应用程序.无法为物理服务器中

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

BroadcastReceive基础知识总结

BroadcastReceive基础知识总结 1.BroadcastReceive简介 BroadcastReceive也就是"广播接收者"的意思,顾名思义,就是用来接收来自系统和应用中的广播 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能,当网络状态改变时,系统会产生一条广播,接收到这条广播,就能及时的做出提示和保存数据等操作,当电池的电量改变的时候,系统会产生一条广播,接收到这条广播就能在电量低的时候告知用户

基础知识--:before伪元素和:after伪元素

http://book.51cto.com/art/201108/285688.htm 3.7  替换指定位置 大家都知道before和after是前.后的意思.但是奇怪的是,CSS中的:before伪元素和:after伪元素是为源文档中不存在的内容设置样式的. 没有内容怎么设置样式呢?别急!它们有一个content属性,一起使用就可以为某个选择器前.后的内容设置样式了. 下面就来了解一下:before伪元素和:after伪元素的用法. 视频教学:光盘/视频/3/3.7  替换指定位置.avi