如果从Kohana 3.1控制器运行以下位代码
$query = DB::select("select * from foo");
$results = $query->execute();
foreach($results as $result)
{
var_dump($result);
}
Run Code Online (Sandbox Code Playgroud)
Kohana将尝试使用返回的数组中的信息连接到数据库application/config/database.php
.具体来说,如果将使用默认组中设置的信息.
return array
(
'default' => array
(
'type' => 'mysql',
'connection' => array(
/**
* The following options are available for MySQL:
*
* string hostname server hostname, or socket
* string database database name
* string username database username
* string password database password
* boolean persistent use persistent connections?
*
* Ports and sockets may be …
Run Code Online (Sandbox Code Playgroud) 我是kohana的新手.我正在使用ORM获取数据.
我想构建一个查询,其中包含哪个BETWEEN
子句.如下
SELECT `rooms`.* FROM `rooms` LEFT JOIN `events` ON (`rooms`.`id` = `events`.`room_id`)
WHERE `events`.`room_id` IS NULL
OR (`events`.`eventstart` NOT BETWEEN 1312210800 AND 1312218000)
Run Code Online (Sandbox Code Playgroud)
因为我正在做以下事情
$rooms = $room->join('events', 'LEFT')
->on('rooms.id', '=', 'events.room_id')
->where('events.room_id', 'IS', NULL)
->and_where_open()
->or_where('events.eventstart' , 'NOT BETWEEN', $from)
->and_where_close()
->find_all();
Run Code Online (Sandbox Code Playgroud)
但我得到这样的查询
SELECT `rooms`.* FROM `rooms` LEFT JOIN `events` ON (`rooms`.`id` = `events`.`room_id`)
WHERE `events`.`room_id` IS NULL AND (`events`.`eventstart` NOT BETWEEN 1312210800)
Run Code Online (Sandbox Code Playgroud)
有人可以指出如何使用BETWEEN子句
您好,我正在使用Kohana Query Builder构建查询,我正在尝试获取此类查询:
UPDATE `report_count` SET `report_count`= report_count + 1;
Run Code Online (Sandbox Code Playgroud)
我现在拥有的是:
DB::update('report_count')->set(array('report_count' => 'report_count + 1'));
Run Code Online (Sandbox Code Playgroud)
并输出此查询:
UPDATE `report_count` SET `report_count` = 'report_count + 1'
Run Code Online (Sandbox Code Playgroud)
所以我的问题是它放' '
了report_count + 1
.我怎样才能删除这些?
我刚刚开始使用Kohana框架,我正在尝试执行一些查询,但是在文档中花了几个小时并运行一些测试后,我所拥有的是:
class Controller_Test extends Controller {
public function action_index()
{
$query = DB::select()->from('test')->where('test', '=', '1');
echo $query
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果尝试运行它,它所做的就是回显我的SQL.
如何从我的数据库中获取实际数据?我知道我可以这样做:
$row = mysql_fetch_row(mysql_query($query));
echo $row[0];
Run Code Online (Sandbox Code Playgroud)
它会起作用; 但我想这完全是愚蠢的,因为我正在使用一个框架,并且必须有内置的方法.
我想使用ORM查询构建器实现此查询:
SELECT * FROM `products`
GROUP BY CASE `products`.`configurable`
WHEN 'yes' THEN `products`.`id_configuration`
ELSE `products`.`id`
END
Run Code Online (Sandbox Code Playgroud)
我知道这有效:
$products = DB::query(Database::SELECT, '
SELECT * FROM `products`
GROUP BY CASE `products`.`configurable`
WHEN 'yes' THEN `products`.`id_configuration`
ELSE `products`.`id`
END
')->execute();
Run Code Online (Sandbox Code Playgroud)
但它返回一个mysql数据库结果,我宁愿有一个ORM列表,否则我将不得不在循环中实例化我的所有ORM对象,导致性能不佳......或者......?
可能吗?ORM'group_by'功能看起来非常有限......