Yii系列總結:[1]Yii?

dao操作方便,但不安全,適合學習,不適合使用

資料庫程式碼

資料庫程式碼:

/*

Navicat MySQL Data Transfer

Source Server : lonxom

Source Server Version : 50524

Source Host : localhost:3306

Source Database : test

Target Server Type : MYSQL

Target Server Version : 50524

File Encoding : 65001

Date: 2013-10-12 00:03:03

*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for `city`

-- ----------------------------

DROP TABLE IF EXISTS `city`;

CREATE TABLE `city` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '城市名',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='城市表';

-- ----------------------------

-- Records of city

-- ----------------------------

INSERT INTO `city` VALUES ('1', '北京');

INSERT INTO `city` VALUES ('2', '上海');

INSERT INTO `city` VALUES ('3', '廣州');

INSERT INTO `city` VALUES ('4', '武漢');

INSERT INTO `city` VALUES ('5', '天津');

-- ----------------------------

-- Table structure for `user`

-- ----------------------------

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`username` varchar(32) CHARACTER SET utf8 NOT NULL COMMENT '使用者名稱',

`city_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '城市',

`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '建立時間',

`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新時間',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='使用者表';

-- ----------------------------

-- Records of user

-- ----------------------------

INSERT INTO `user` VALUES ('2', '菩提', '2', '0', '0');

INSERT INTO `user` VALUES ('3', '天師', '5', '0', '0');

INSERT INTO `user` VALUES ('5', '久1', '3', '0', '0');

INSERT INTO `user` VALUES ('6', '久2', '4', '0', '0');

INSERT INTO `user` VALUES ('7', '久3', '1', '0', '0');

INSERT INTO `user` VALUES ('8', '久4', '4', '0', '0');

INSERT INTO `user` VALUES ('9', '久5', '5', '0', '0');

INSERT INTO `user` VALUES ('10', '久6', '1', '0', '0');

INSERT INTO `user` VALUES ('11', '久7', '3', '0', '0');

INSERT INTO `user` VALUES ('12', '久8', '3', '0', '0');

INSERT INTO `user` VALUES ('13', '久9', '1', '0', '0');

INSERT INTO `user` VALUES ('14', '帥帥', '1', '1381395175', '1381395175');

INSERT INTO `user` VALUES ('15', '小豬豬', '1', '1381396237', '1381463258');

INSERT INTO `user` VALUES ('16', '阿浩', '2', '1381396559', '1381396559');

INSERT INTO `user` VALUES ('17', '鵬鵬', '1', '1381398344', '1381398344');

INSERT INTO `user` VALUES ('18', '方方', '5', '1381398969', '1381398969');

INSERT INTO `user` VALUES ('19', '官人', '1', '1381456860', '1381456860');

INSERT INTO `user` VALUES ('20', '謝平', '4', '1381461563', '1381461563');

INSERT INTO `user` VALUES ('21', '元方', '2', '1381463288', '1381463288');

INSERT INTO `user` VALUES ('22', '康師傅', '1', '1381500128', '1381500128');

-- ----------------------------

-- Table structure for `user_info`

-- ----------------------------

DROP TABLE IF EXISTS `user_info`;

CREATE TABLE `user_info` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用者表id',

`info` text CHARACTER SET utf8 COMMENT '使用者簡介',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='使用者資訊表';

-- ----------------------------

-- Records of user_info

-- ----------------------------

INSERT INTO `user_info` VALUES ('1', '15', '我是一個好人');

基本查詢方法

//DAO方式的 插入動作

public function actionCreate()

{

$res=Yii::app()->db->createCommand()->insert("user",array(

'username'=>'水墨淡清',

));

dump($res,FALSE);

dump(Yii::app()->db->getLastInsertID());//獲取最新插入的ID

}

//DAO方式的 修改動作

public function actionUpdate()

{

$res=Yii::app()->db->createCommand()->update('user',array(

'username'=>'我是來玩的'

), 'id=:id',array(':id'=>24));

dump($res);

}

//DAO方式的 刪除動作

public function actionDelete($id)

{

$id=trim($id);

$res=Yii::app()->db->createCommand()->delete('user','id=:id',array(':id'=>$id));

dump($res);

}

//單條資料查詢 queryRow()

public function actionRow()

{

$row=Yii::app()->db->createCommand()->select('id,username,city_id')->from('user')->where('id=:id',array(':id'=>2))->queryRow();

dump($row);

}

//多條資料查詢 queryAll()

public function actionAll()

{

$all=Yii::app()->db->createCommand()->select('id,username,city_id')->from('user')->where('id>:id',array(':id'=>1))->queryAll();

dump($all);

}

//統計資料數量 queryScalar()

public function actionScalar()

{

$scalar=Yii::app()->db->createCommand()->select('count(1)')->from('user')->where('id>:id',array(':id'=>1))->queryScalar();

dump($scalar);

}

//查詢所有的ID

public function actionColumn()

{

$ids=Yii::app()->db->createCommand()->select('id')->from('user')->where('id>:id',array(':id'=>1))->queryColumn();

dump($ids);

}

基本查詢條件方法

//查詢出ID大於1 並且小於5的所有資料集合

//and()方法

//$all=Yii::app()->db->createCommand()->select('id,username,city_id')->from('user')->where('id>:id and id<5',array(':id'=>1))->queryAll();

//and()陣列方法

//$all=Yii::app()->db->createCommand()->select('id,username,city_id')->from('user')->where(array('and','id>1','id<5'))->queryAll();

//andWhere()方法

//$all=Yii::app()->db->createCommand()->select('id,username,city_id')->from('user')->where('id>:id',array(':id'=>1))->andWhere('id<:eid',array(':eid'=>5))->queryAll();

//使用in查詢出id在5和6裡面的資料集合

//$all=Yii::app()->db->createCommand()->select('id,username,city_id')->from('user')->where(array('in','id',array(5,6)))->queryAll();

//使用like查詢 並且 ID大於6小於10

//$all=Yii::app()->db->createCommand()->select('id,username,city_id')->from('user')->where(array('like','username','%久%'))->andWhere(array('and','id>6','id<10'))->queryAll();

//查詢出名字裡面帶有9的 3條資料 ID倒序 略過3條資料

//$all=Yii::app()->db->createCommand()->select('id,username,city_id')->from('user')->where(array('like','username','%久%'))->limit(3)->offset(3)->order('id desc')->queryAll();

dump($all);

//關聯查詢

public function actionJoin()

{

//取出id 大於 2 小於 6的所有使用者資訊並取出城市名稱

$users=Yii::app()->db->createCommand()->select('u.id,u.username,c.name')

->from('user u')

->join('city c','c.id=u.city_id')

->where('u.id>2')

->andWhere('u.id<6')

->queryAll();

dump($users);

}

相關問題答案