Kohana 数据库

Kohana 数据库

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

只要不使用官方网站的教程,自己摸索出来的,有一个错误,当我们指了出来,哦,,好吧共同进步~

首先配置:modules\database\config\database.php

<?php
'default' => array(
		'type'       => 'pdo',
		'connection' => array(
			/**
			 * The following options are available for PDO:
			 *
			 * string   dsn         Data Source Name
			 * string   username    database username
			 * string   password    database password
			 * boolean  persistent  use persistent connections?
			 */
			'dsn'        => 'mysql:host=localhost;dbname=kohana',
			'username'   => '******',//
			'password'   => '******',//
			'persistent' => FALSE,
		),
		/**
		 * The following extra options are available for PDO:
		 *
		 * string   identifier  set the escaping identifier
		 */
		'table_prefix' => 'ko_',
		'charset'      => 'utf8',
		'caching'      => FALSE,
		'profiling'    => TRUE,
),

能够配置多个数据库配置哦~

配置好了之后就能够使用咯

配置完了就能够使用咯

在你的控制器中就能够这样

数据库实例

有两种数据库实例

1.DB数据库实例

2. database数据库实例

当中DB是对database的再次封装

以下描写叙述两个数据库实例的使用

Database

取得方法:

<?php
$database=Database::instance();//能够取得database实例
#例外在模型中,dababase做为模型构造函数的唯一一个传递參数,并在模型中有$this->_db属性
$database=$this->_db;

 
 
用法:(如果在模型中)
插入数据:
<?

php

$sql="INSERT INTO `kohana`.`user` (`name` ,`age` )VALUES ( 'test', '1'), ( 'test2', '2')";
$dat=$this->_db->query(Database::INSERT,$sql,false);
# return 返回的两个值中,第一个是自己主动增长的ID,假设有的话,第二是影响的行数 

 
更新数据:
<?php
$sql="UPDATE `ko_users` SET `user_name` = 'test111q1'  ";
$dat=$this->_db->query(Database::UPDATE,$sql,false);
#return 返回影响行数


 
删除数据:
<?php
$sql="DELETE FROM `kohana`.`user` WHERE `user`.`id` = 1";
$dat=$this->_db->query(Database::DELETE,$sql,false);
#return 返回影响行数

 
 
查询数据:
<?

php $sql="select * from ko_com_var"; $res=$this->_db->query(Database::SELECT,$sql,false); #得到全部查询数据 $res->as_array(); #得到一条查询结果 $res->offsetGet(0); #取得特定记录的指定字段值 $res->get("name"); #移动指针并取得指定字段 $res->next()->get("name"); $res->prev()->get("name"); #计算取得结果总数 $res->count(); #还有其它方法不在一一罗列,请查看手冊


其它经常使用帮助函数:
<?php
#过滤字符串用,不知道为什么放到这个单例中,该是公用才对~,也许是每中数据库的过滤的东西有区别吧
$str=$this->_db->escape("ddddd  ddd");
#表前缀,这个经常使用~
$str=$this->_db->table_prefix();
#还有其它查看帮助,不介绍咯


DB实例使用(下面演示在Kohana环境就可以)
有两种方式:
第一种:
下面的execute(); 有一个数据库适配器參数,当有多个数据连接的时候指定操作那个数据库,就是配置文件的那个KEY值
插入数据:
<?

php $sql="INSERT INTO `kohana`.`user` (`name` ,`age` )VALUES ( 'test', '1'), ( 'test2', '2')"; #事实上也能够用Database::UPDATE,结果仅仅返回影响行数,只是还是按规范好.呵呵~,上述Database也能够 $dat=DB::query(Database::INSERT,$sql); $row=$dat->execute(); #返回的两个值中,第一个是自己主动增长的ID,假设有的话,第二是影响的行数 Kohana::debug($row);


数据更新:
<?php
$sql="UPDATE `user` SET `name` = 'test2' WHERE `user`.`id` =1 ";
$dat=DB::query(Database::UPDATE,$sql);
$row=$dat->execute();
#返回影响行数
echo Kohana::debug($row);
 
数据删除:
<?

php $sql="DELETE FROM `kohana`.`user` WHERE `user`.`id` = 1"; $dat=DB::query(Database::DELETE,$sql); $row=$dat->execute(); #返回影响行数 echo Kohana::debug($row);

数据查询:

<?php$sql="select * from user";$dat=DB::query(Database::SELECT,$sql);#指定数据库取数据$row=$dat->execute($database)->offsetGet(0);#默认数据库取数据,和上面的Database一样,都是返回Database_Result_Cached对象,实现了迭代器模式$rus=$dat->execute();#取得部分结果$row=$rus->offsetGet(0);#取得全部结果$allrow=$rus->as_array();#取得特定记录的指定字段值$no1name=$rus->get("name");#移动数组指针,并取指定字段值$no2name=$rus->next()->get("name");#当前指针echo $rus->key();#移动数组指针,并取指定字段值echo $no1name=$rus->prev()->get('name');#取行数echo $rus->count();


另外一种:(官网文档称之为查询器模式,不好用,呵呵,简单的能够用下)
插入数据:
<?php
$query = DB::insert('user', array('user', 'age'))
		->values(array('test1', '11'));
$query->execute();
#返回和上面一样

更新数据:
<?php
$query = DB::update('user')
		->set(array('age' => '100'))
		->where('user', '=', 'test1');
$query->execute();
#返回和上面一样

删除数据:

<?php
$query = DB::delete('user')
		->where('age', 'IN', array('100', '11'));
$query->execute();
#返回和上面一样

查询数据:

<?php
$query = DB::select()->from('user')->where("id","=","1");
$res=$query->execute();
#和上面一样,$res是Database_Result_Cached对象
$res->as_array();
#其它方法不演示了~


附注:
数据绑定,抄官方实例一个,该非常easy,比較容易看懂
<?php
$query = DB::query(Database::INSERT, 'INSERT INTO users (username, password) VALUES (:user, :pass)')      
->bind(':user', $username)    
->bind(':pass', $password);  
foreach ($new_users as $username => $password){    
	$query->execute();
}


基本上它,我不经常使用,我不形容了,只是主要介绍了完整的,

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117064.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • websocket 粘包问题_websocket数据过大

    websocket 粘包问题_websocket数据过大websocket 底层使用的tcp 协议。 当一次发送数据过长时,tcp 会把数据封成多个包发送;同样当数据过短时,会把数据合并成一个包发送,这种现象就是粘包。粘包的情况也有可能是接收端造成的。[参考]( http://m.blog.csdn.net/duotemplar/article/details/73193038).tcp协议相关的知识百度之。 粘包出现必然对应拆包处理。处理

  • linux 移动 文件,linux移动文件命令[通俗易懂]

    linux 移动 文件,linux移动文件命令[通俗易懂]linux移动文件命令mv命令功能:为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。语法:mv[选项]源文件或目录目标文件或目录说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源…

  • realsense深度图像保存方法[通俗易懂]

    realsense深度图像保存方法[通俗易懂]一般使用realsense时会保存视频序列,当保存深度图像时,需要注意保存的图像矩阵的格式,不然可能造成深度值的丢失。在众多图像库中,一般会使用opencv中的imwrite()函数进行深度图像的保存。一般深度图像中深度值的单位是mm,因此一般使用np.uint16作为最终数据格式保存。例子:importnumpyasnpimportcv2deffun1(…

  • java bigdecimal除法(java加减乘除运算)

    BigDecimal bignum1 = new BigDecimal("10");  BigDecimal bignum2 = new BigDecimal("5");  BigDecimal bignum3 = null;    //加法  bignum3 =  bignum1.add(bignum2);       System.out.println("和 是:" + bignum3); …

  • leetcode二叉树的层次遍历_完全二叉树的中序序列

    leetcode二叉树的层次遍历_完全二叉树的中序序列LeetCode二叉树中序遍历1.1题目描述给定一个二叉树的根节点root,返回它的中序遍历。1.2示例示例:输入:root=[1,null,2,3]输出:[1,3,2]2.1解题2.1.1解题方法:递归二叉树的中序遍历方法:按照“左(子树)→中→右”顺序遍,可以使用递归方式进行遍历Java版解题/***Definitionforabinarytreenode.*publicclassTreeNode{*intval

  • elasticsearch数据库搭建 window版

    elasticsearch数据库搭建 window版说明:安装elasticsearch之前必须安装好jdk运行环境1.首先下载安装包:这是官网最新安装包:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-windows-x86_64.zip2.直接解压到想要安装的目录即可 3.配置文件打开config下的elasticsearch.yml…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号