标签: kohana-db

如何在Kohana 3.1中使用备用数据库连接

如果从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)

php kohana kohana-3 kohana-db

3
推荐指数
1
解决办法
2180
查看次数

如何在Kohana ORM中使用BETWEEN子句

我是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 kohana-3 kohana-orm kohana-db

3
推荐指数
2
解决办法
5300
查看次数

Kohana查询构建器更新

您好,我正在使用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.我怎样才能删除这些?

php kohana kohana-db

3
推荐指数
1
解决办法
5138
查看次数

Kohana中的数据库查询仅显示SQL而不显示结果行

我刚刚开始使用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)

它会起作用; 但我想这完全是愚蠢的,因为我正在使用一个框架,并且必须有内置的方法.

php kohana kohana-3 kohana-db

1
推荐指数
1
解决办法
3722
查看次数

Kohana 3 ORM - 逐个案例

我想使用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'功能看起来非常有限......

kohana kohana-3 kohana-orm kohana-db

0
推荐指数
1
解决办法
622
查看次数

标签 统计

kohana ×5

kohana-db ×5

kohana-3 ×4

php ×3

kohana-orm ×2