开发者

Kohana: Connecting to database and executing a query

I was going to post this on their forum, but they seem to be down at the moment.

$mydb  = Database::instance('mydb');
$query = DB::select()->from('codes')->where('name', '=', 'PHP'); 

1) This doesn't appear to me using my custom database instance that I have defined in database.php. It always uses the default one. How can I tell?

I get an error that says:

mysql_connect(): Access denied for user ''@'localhost' (using password: NO) ~ MODPATH\database\classes\kohana\database\mysql.php [ 56 ]

2) I am a bit confused, because based on their tutorial, a execute($mydb) shouldn't be necessary... but I have seen posts suggesting that it is. Which one is it?

Config file:

<?php defined('SYSPATH') or die('No direct access allowed.');

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 appended to the hostname.
             */
            'hostname'   => 'localhost',
            'database'   => 'kohana',
            'username'   => FALSE,
            'password'   => FALSE,
            'persistent' => FALSE,
        ),
        'table_prefix' => '',
        'charset'      => 'utf8',
        'caching'      => FALSE,
        'profiling'    => TRUE,
    ),
    'alternate' => array(
        'type'       => 'pdo',
        'connection' => array(
            /**
             * The following options are available for PDO:
             *
             * string   dsn         Data Source Name
             * string   username    database username
             * strin开发者_JAVA技巧g   password    database password
             * boolean  persistent  use persistent connections?
             */
            'dsn'        => 'mysql:host=localhost;dbname=kohana',
            'username'   => 'root',
            'password'   => 'r00tdb',
            'persistent' => FALSE,
        ),
        /**
         * The following extra options are available for PDO:
         *
         * string   identifier  set the escaping identifier
         */
        'table_prefix' => '',
        'charset'      => 'utf8',
        'caching'      => FALSE,
        'profiling'    => TRUE,
    ),
    'mydb' => array(
        'type'       => 'mysql',
        'connection' => array(
            'hostname'   => '127.0.0.1',
            'username'   => 'test',
            'password'   => 'test',
            'persistent' => FALSE,
            'database'   => 'mydb',
        ),
        'table_prefix' => '',
        'charset'      => 'utf8',
        'profiling'    => TRUE,
    ),

);


Database::instance('mydb');

This is not a database name, but a database config group. Check out the database config file to see how it's structured.

Can you post your config file?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜