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();
}


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

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

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

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

(0)
上一篇 2022年1月11日 上午11:00
下一篇 2022年1月11日 上午11:00


相关推荐

  • outsystems 连接外部数据库方法

    outsystems 连接外部数据库方法在 outsystems 开发的时候 怎么去连接外部的 oracle sqlserver 等数据库 下面文章里面有详解 https www outsystems com forums discussion 7362 re how to integrate with an external sql server or oracle database in outsystem PS 个人联系的 clo

    2026年3月18日
    2
  • 电力通信网体系结构图_电力通信技术

    电力通信网体系结构图_电力通信技术电力通信网体系的分层可以从水平和垂直两个方面去理解:水平方向上可以划分两层,即骨干通信网、接入通信网;垂直方向上骨干网又可以分为传输网、数据网、支撑网。其中接入通信网可分为输变电通信网与配电通信网。一、骨干通信网1.1传输网:是由线路设施、传输设施等组成的为传送新消息业务提供所需传送承载能力的通道,它是通信网络的基础,它为整个通信网络上所承载的业务提供传输通道和平台。1.2

    2025年12月4日
    5
  • sql左连接出现重复数据「建议收藏」

    情况说明:只需左表数据,右表数据只作为条件存在,左表数据与右边有1:n关系,左连接出现重复数据原因分析:由于1:n关系,右边数据连接后处于隐藏状态(类似),实际上数据未重复,由于只显示左边数据,就形成了数据重复情况例:左表:右表:左连接且只需要左表数据:如果取右表数据,上面显示的结果就不算重复:解决方法:直接对数据进行DISTINCT求唯一值,…

    2022年4月17日
    43
  • fmincon函数源代码_fminbnd函数

    fmincon函数源代码_fminbnd函数输入参数:fun要求解的函数值;x0函数fun参数值的初始化;输出参数:X输出最优参数值原文链接:MATLAB优化函数fmincon解析

    2025年5月24日
    3
  • json序列化和反序列化方法(数据整理常用的三种方式)

    以下内容是本作者从官网中看相应的教程后所做的demo,其体现了作者对相关知识点的个人理解。。作者才疏学浅,难免会有理解不到位的地方。。还请各位读者批判性对待。。。      本文主要介绍在Json数据的序列化与反序列化的过程中我经常用到的三种工具的基本使用方法,及其他们之间的比较。。。希望能够对读者们有一些帮助。。。这里介绍到的三种解析与生成Json数据的方法分别是:

    2022年4月16日
    29
  • 常用的快捷键 MAC IDEA (mac os X 10.5 )

    常用的快捷键 MAC IDEA (mac os X 10.5 )

    2021年5月12日
    245

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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