CodeIgniter получить таблицы просмотра другой базы данных - PullRequest
0 голосов
/ 23 декабря 2018

Во время разработки нам приходилось подписывать таблицу просмотра другой базы данных, но как бы мы ни старались, возникала только ошибка.Поэтому, хотя я и назвал это простым выбором, происходит ошибка.

Произошла ошибка базы данных

Номер ошибки: 1046 База данных не выбрана

SELECT * 
FROM `test1`.`view_test_table`

Имя файла: test.php

Я не понимаю эту ситуацию.

Я сделал все, что просил, чтобы документ CodeIgniter сделал, и я сделал все от простогозапросы к тестам построителя запросов, но я не вижу подробностей.

Test_mode.php:

<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Test_model extends CI_Model
{
    private $new_db;

    function __construct()
    {
        parent::__construct();
        $this->new_db = $this->load->database('test1', TRUE);
    }

    public function test_view_list()
    {
       $this->new_db->select("*");
       $this->new_db->from("test1.view_test_table");
       return $this->new_db->get()->result_array();
    }
}

и database.php

$db['test1'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'test1',
    'password' => 'xxxx',
    'database' => '',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
 );

Неужели ясделать какие-либо ошибки?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

в вашем файле database.php.напишите имя вашей базы данных.

$db['test1'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'test1',
    'password' => 'xxxx',
    'database' => 'databasename',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
 );
0 голосов
/ 23 декабря 2018

Попробуйте использовать новый экземпляр для этой базы данных

$new_db = $this->load->database('test1', TRUE);

и обратитесь к таблице view_test_table, используя new_db

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...