先说基本版:
只要修改 config/db.php
<?php
return [
'class' =>'yii\db\Connection',
'dsn' =>'mysql:host=localhostdbname=yii2',
'username' =>'root',
'password' =>'',
'charset' =>'utf8',
'tablePrefix' =>'hpcms_',
]
其中dbname是指数据库名、 host 是主机、 tablePrefix 是表前缀
高级版的也差不多,修改 common/config/main-local.php
配置参数和上述基本一致!
这样就可以链接数据库了(当然你得要启动mysql才可以,如果是其他数据库,请搜索一下,基本都是配置下参数即可)
对于如何 *** 作数据库(增删改查)请看文档ActiveRecord 以及Model (设计表结构后,可以用Gii快速生成Model)
想知道更多的话,看文档最实际
YII使用小记-Yii::t()-状态值匹配1,使用updateCounters()来更新计数器字段。
Book::model()->updateCounters(array('download_count'=>1),':id=id',array(':id'=>$id))
2,使用sendFile()来下载文件。
$type = LFilter::checkString($_GET['t'])
$dataProvider = Book::model()->findByPk($id)
$content = $this->renderPartial('book',array(
'dataProvider' =>$dataProvider,
'type' =>$type,
),true,false)
Yii::app()->request->sendFile($dataProvider->name.'.'.$type,$content)
3,设计数据库时候如果create_time,update_time字段为int(10).在模型中使用行为插件
public function behaviors()
{
return array(
'CTimestampBehavior' =>array(
'class' =>'zii.behaviors.CTimestampBehavior',
'createAttribute' =>'create_time',
'updateAttribute' =>'update_time',
)
)
}
4,如果有些字段使用1,2,3之类的数字存储,在程序中使用时候含义不明确。可以model中加入如下函数.
private static $_items = array()
public static function loadItems($type,$code=null)
{
self::$_items = array(
'status' =>array(
'1' =>Yii::t('dh','开启'),
'2' =>Yii::t('dh','关闭'),
),
'type' =>array(
'1' =>Yii::t('dh','产品'),
'2' =>Yii::t('dh','文章'),
),
)
return $code ? self::$_items[$type][$code] : self::$_items[$type]
}
5,多语言使用Yii::t()函数。
新建文件/protected/messages/zh_cn/message.php内容如下代码
return array('some message'=>'中文信息')
在view文件里如下
echo Yii::t('message','some message')
在config/main.php里加上:'language'=>'zh_cn',
显示结果就是:'中文信息'。
public function attributeLabels()
{
return array(
'verifyCode'=>Yii::t('default','验证码'),
'name'=>Yii::t('default','名字'),
'email'=>Yii::t('default','邮箱'),
'subject'=>Yii::t('default','标题'),
'body'=>Yii::t('default','内容'),
'required'=>Yii::t('default','变量"{var}"没有定义',array('{var}'=>$var))
)
}
6,数据库表使用了前缀,则使用{{$tableName}}。
public function tableName()
{
return '{{product}}'
7,Cookie的使用
//设置Cookie
$cookie=new CHttpCookie($name,$value)
$cookie=time()+60*60*24
Yii::app()->request->cookies[$name]=$cookie
//获取Cookie
$cookie=Yii::app()->request->cookies[$name]
$value=$cookie->value
//删除Cookie
$cookie = Yii::app()->request->getCookies()
unset($cookie[$name])
}
8,findAll()的使用
$params=array(
'select'=>'id,name,image',
'order'=>'total_point DESC',
'limit'=>5,
)
$this->findAll($params)
find()使用同理,只是返回一条数据。
9,readAll()返回数组结果集
$query = 'SELECT id,username FROM user'
$command = Yii::app()->db->createCommand($query)
return $command->query()->readAll()
本文实例讲述了Yii2框架 *** 作数据库的方法。分享给大家供大家参考,具体如下:准备数据库
DROP
TABLE
IF
EXISTS
`pre_user`
CREATE
TABLE
`pre_user`(
`id`
int(11)
AUTO_INCREMENT
PRIMARY
KEY,
`username`
varchar(255)
NOT
NULL,
`password`
varchar(32)
NOT
NULL
DEFAULT
'',
`password_hash`
varchar(255)
NOT
NULL
DEFAULT
'',
`email`
varchar(255)
NOT
NULL
DEFAULT
'',
`status`
smallint(6)
NOT
NULL
DEFAULT
10,
`created_at`
smallint(6)
NOT
NULL
DEFAULT
0,
`updated_at`
smallint(6)
NOT
NULL
DEFAULT
0
)ENGINE=InnoDB
DEFAULT
CHARSET=utf8mb4
配置连接
config\db.php
<?php
return
[
'class'
=>
'yii\db\Connection',
'dsn'
=>
'mysql:host=localhostdbname=yii2',
'username'
=>
'root',
'password'
=>
'root',
'charset'
=>
'utf8mb4',
'tablePrefix'
=>
'pre_'
]
查看数据库连接是否成功
控制器里打印:
var_dump(\Yii::$app->db)
怎么执行SQL语句?
增删改
//
接收表单的数据
$username
=
'jack'
$sql
=
"INSERT
INTO
{{%user}}
(username,status)
VALUES
(:username,:status)"
//
返回受影响行数
$row
=
\Yii::$app->db->createCommand($sql,['username'=>$username,'status'=>8])->execute()
//
获取自增ID
echo
\Yii::$app->db->getLastInsertID()
查询
$sql
=
"SELECT
*
FROM
{{%user}}
WHERE
id>:id"
//
查询结果是一个二维数组
$userArr
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryAll()
//
如果要查询一个
$user
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryOne()
//
如果要返回单值
//
例如
select
count(*)语句
$count
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryScalar()
echo
$count
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库 *** 作入门教程》及《php常见数据库 *** 作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
您可能感兴趣的文章:Yii2.0高级框架数据库增删改查的一些 *** 作Yii2——使用数据库 *** 作汇总(增删查改、事务)Yii2数据库 *** 作常用方法小结Yii2框架实现数据库常用 *** 作总结Yii2实现跨mysql数据库关联查询排序功能代码Yii+MYSQL锁表防止并发情况下重复数据的方法Yii
连接、修改
MySQL
数据库及phpunit
测试连接Yii实现MySQL多数据库和读写分离实例分析Yii *** 作数据库实现动态获取表名的方法Yii *** 作数据库的3种方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)