【问题标题】:How to show data in another database with codeigniter如何使用 codeigniter 在另一个数据库中显示数据
【发布时间】:2018-05-22 04:29:31
【问题描述】:

我想显示数据,但数据库与我在 config/database 中的设置数据库不同。但是当我运行这段代码时,它给了我错误。

这是我的代码:

public function Asset($param = "")
{
    $conn = array( "Database"=>"United2",
                        "UID"=>"it", 
                        "PWD"=>"uni");
    $import = sqlsrv_connect("10.11.1.6", $conn);

    $cols = array("Kode","Description","Keterangan");
    $idx = "Kode";
    $tbl = ("(
                SELECT Kode, Description, Keterangan FROM Ms_OtherAsset
            ) src    
            ", $import);
    $whr = "";
    $data = $this->GetDataMsSQL($cols,$idx,$tbl,$whr);
    $output = $data["output"];
    $datares = $data["datares"];
    if(!empty($datares))
    {
        foreach($datares->result_array() as $row)
        {
            $r = array();
            foreach($cols as $c)
            {    
                $r[] = $row[$c];
            }
            $output["aaData"][] = $r;
        }
    }
    echo json_encode($output);
}

【问题讨论】:

  • 会出现什么错误?
  • @smith 它给了我“数据表警告:表 id=tblData - 无效的 JSON 响应。有关此错误的更多信息,请参阅 datatables.net/tn/1”,因为我使用数据表。我认为当我添加 $import 时我的查询是错误的,因为当我不使用另一个数据库时它不是错误
  • 检查你的输出,看看你是否通过打印得到有效的 JSON。
  • @prasannaputtaswamy 我认为我对这段代码有误 $tbl = ("( SELECT Kode, Description, Keterangan FROM Ms_OtherAsset ) src ", $import);
  • 问题出在你的 JSON 上。似乎它可能不完整。

标签: php sql-server codeigniter


【解决方案1】:

你可以在codeigniter中拥有多个不同组名的数据库连接组。

    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "database_name";
    $db['default']['dbdriver'] = "mysql";
    $db['default']['dbprefix'] = "";
    $db['default']['pconnect'] = TRUE;
    $db['default']['db_debug'] = FALSE;
    $db['default']['cache_on'] = FALSE;
    $db['default']['cachedir'] = "";
    $db['default']['char_set'] = "utf8";
    $db['default']['dbcollat'] = "utf8_general_ci";
    $db['default']['swap_pre'] = "";
    $db['default']['autoinit'] = TRUE;
    $db['default']['stricton'] = FALSE;

    $db['otherdb']['hostname'] = "localhost";
    $db['otherdb']['username'] = "root";
    $db['otherdb']['password'] = "";
    $db['otherdb']['database'] = "other_database_name";
    $db['otherdb']['dbdriver'] = "mysql";
    $db['otherdb']['dbprefix'] = "";
    $db['otherdb']['pconnect'] = TRUE;
    $db['otherdb']['db_debug'] = FALSE;
    $db['otherdb']['cache_on'] = FALSE;
    $db['otherdb']['cachedir'] = "";
    $db['otherdb']['char_set'] = "utf8";
    $db['otherdb']['dbcollat'] = "utf8_general_ci";
    $db['otherdb']['swap_pre'] = "";
    $db['otherdb']['autoinit'] = TRUE;
    $db['otherdb']['stricton'] = FALSE;

$CI = & get_instance();
$CI->db = $this->load->database('otherdb', true);

【讨论】:

  • 这是我的设置配置/数据库pastebin.com/B1WGaa5U。但它给了我“致命错误:在第 84 行的 C:\xampp\htdocs\svn\tes\application\config\database.php 的对象上下文中使用 $this”
  • $CI = & get_instance(); $CI->db = $this->load->database('otherdb', true);在模型中使用此代码。在连接到数据库之前使用它..
  • 它仍然给我错误,看看我的代码pastebin.com/JPabdsLz
【解决方案2】:
**Use this db config code:**

$db_name = 'test_db_name';
$db_user = 'root';
$db_password = '123456';
$config['dsn'] = "mysql:host=localhost;dbname=$db_name";
$config['hostname'] = "localhost";
$config['username'] = "$db_user";
$config['password'] = "$db_password";
$config['database'] = "$db_name";
$config['dbdriver'] = "pdo";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$this->db1 = $this->load->database($config, TRUE);

【讨论】:

    猜你喜欢
    • 2013-12-21
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多