47312


fuelphpでDB(personal)のテーブル(friend)にinsertしたいのですが、  
データベースが選択されていませんというエラーが出ます。  
db.phpでDB(personal)を選択し、  
freind2.phpでテーブルfriendを選択しているので、  
No database selectedでは無いと思うのですが、  
何が原因なのでしょうか。  
お手数おかけしますが、ご回答頂けると幸いです。  
宜しくお願いします。

エラー

[code]

    Fuel\Core\Database_Exception [ 1046 (1046) ]:
    No database selected [ INSERT INTO `friend` (`id`, `name`, `age`, `sex`) VALUES ('777', '梅宮辰夫', '71', '男') ]
    
[/code]

friend2.php(/Users/■■■■/Desktop/fuelphp-1.8.1/fuel/app/classes/controller)

[code]

    <?php
    
    class Controller_Friend2 extends Controller  {
          //メソッド
        public function action_insert() {
    
        DB::insert('friend')->set(array(
            'id' => '777',
            'name' => '梅宮辰夫',
            'age' => '71',
            'sex' => '男',
    
        ))->execute();
    
             }
    
    }
    
    ?>
    
[/code]

db.php(/Users/■■■■/Desktop/fuelphp-1.8.1/fuel/app/config)

[code]

    <?php
    return array(
        'default' => array(
            'type'        => 'mysqli',
            'connection'  => array(
                'persistent' => false,
            ),
            'identifier'   => '`',
            'table_prefix' => '',
            'charset'      => 'utf8',
            'collation'    => false,
            'enable_cache' => true,
            'profiling'    => false,
            'readonly'     => false,
        ),
    );
    
[/code]

db.php(/Users/■■■■/Desktop/fuelphp-1.8.1/fuel/app/config/development)

[code]

    <?php
    return array(
      'default' => array(
        'connection'  => array(
            'dsn'    => 'mysql:host=localhost;dbname=personal',
            'port'     => '3306',
            'username'   => 'root',
            'password'   => 'root',
           ),
            'profiling' => true,
        ),
    );
    
[/code]

環境

[code]

    fuelphp 1.8.1
    PHP 7.1.16
    
[/code]


CC BY-SA 4.0
2018-08-07T02:59:34.420
47308
2018-08-07T04:21:00.113
29530
question
php mysql phpmyadmin fuelphp
1046 (1046)!No database selectedになる


typeのmysqliとPDOではconnectionの書き方が違います。  
PDOの場合はdsnで記述が可能ですが、mysqliの場合はdsnの記述はできず、項目ごとに変数を設定する必要があります。

mysqliの場合

[code]

    'connection'     => array(
        'hostname'       => 'localhost',
        'port'           => '3306',
        'database'       => 'personal',
        'username'       => 'root',
        'password'       => 'root',
        'persistent'     => false,
        'compress'       => false,
    ),
    
[/code]

マニュアルにも2種類のconnectionの書き方が紹介されています。  
<http://fuelphp.jp/docs/1.8/classes/database/introduction.html>  
詰まったらまずはマニュアルをご覧ください。


CC BY-SA 4.0
2018-08-07T04:21:00.113
47312
2018-08-07T04:21:00.113
22665
47308
answer