yii2.0怎样与XAMPP的数据库连接?

yii2.0怎样与XAMPP的数据库连接?,第1张

yii2.0 官方提供两个模板

先说基本版:

只要修改 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种方法


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6775150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存