【问题标题】:how can i use database connection of the already connected database in codeigniter?如何在codeigniter中使用已连接数据库的数据库连接?
【发布时间】:2016-08-25 13:50:15
【问题描述】:

我已经在配置文件夹database.php 文件中连接了数据库。 是否有任何变量可以简单地引用该MySQLi 连接,以便我可以使用该连接并像手动插入一样-

mysqli_query($alreadyconn, "insert into table ...");

insert() in Codeigniter.com

我知道如何在 codeigniter 中插入,但我需要上述特定情况。在这里我无法重新连接该数据库并使用该变量。

非常感谢任何帮助!

【问题讨论】:

    标签: php database codeigniter mysqli codeigniter-3


    【解决方案1】:

    使用$this->db 引用您的数据库连接

    $query = $this->db->query("
            YOUR QUERY HERE
    ");
    

    【讨论】:

      【解决方案2】:

      好的。看来你知道database.php。会多了解一些的

      $db['default'] = array(
          'dsn'   => '',
          'hostname' => 'localhost', # host
          'username' => '', # Username
          'password' => '', # password
          'database' => '', # Databse name
          'dbdriver' => 'mysqli', # this can be MySQL or MySQLi
      

      注意:推荐使用 MySQLi 作为数据库驱动。


      如何连接数据库??

      有 3 种存档方式

      1. Gobally - (路径 - application/config/autoload.php)

        $autoload['libraries'] = array('database');
        
      2. 仅限班级内。

        class ClassName extends CI_Model 
        {
            public function  __construct()
            {
                parent::__construct();
                $this->load->database();
            } 
        }
        

        可以在该类中添加的所有方法中使用

      3. 仅限Withing 方法。 (主要只在控制器上)

        class ClassName extends CI_Controller {
        
            public function  __construct()
            {
                parent::__construct();
            }
        
            public function index()
            {
                $this->load->database();
            }
        

        只能在类内使用


      什么是查询生成器 (3.0+) 或 Active Records(3.0-) ??

      此模式允许使用最少的脚本在数据库中检索、插入和更新信息。在某些情况下,执行数据库操作只需要一两行代码。 CodeIgniter 不要求每个数据库表都是它自己的类文件。相反,它提供了更简化的界面。


      如何使用数据库查询 & (Query Builder or Active Records) ??

      上面提到的autoload.php中首先加载DB(个人推荐)。
      无论您在模型或控制器中的哪个位置,只需使用 $this->db 即可与您的数据库建立开放连接。
      有了它,您可以添加 Query Builder 方法,就像 codeigniter docs 中提到的那样。如果你喜欢使用传统的 SQL 方法,你可以随意使用query()(这是我最喜欢的)。

      示例

      $this->db->query("SELECT * FROM user WHERE name = 'Sparatn' AND ... OR... ");
      

      但这不足以产生有意义的数据。所以你也必须遵循这些步骤

      $query = $this->db->query("SELECT * FROM user WHERE name = 'Sparatn' "); # 1
      $result  = $query->result_array(); # 2
      return $result; #3
      

      在#1中将数据库行数据分配给一个变量。
      在 #2 中将#1 转换为目标数组(result_array 目标数组由此表示)。
      在 #3 中将结果返回给控制器。

      【讨论】:

        【解决方案3】:

        要在数据库中插入数据,您必须不需要代码中的 MySQL 函数 igniter 。 你应该使用

             $this->db->insert() 
        

        在数据库中存储数据的功能。 如需更多帮助,请访问 https://www.formget.com/insert-data-into-database-using-codeigniter/ 谢谢你

        【讨论】:

        • 感谢您的回答。我知道我可以使用 $this->db->insert() 插入数据库。但我想使用 MySQL 函数插入。我不能在 Code Igniter 中直接使用 MySQL 函数吗?
        • 是的,你可以使用mysqli功能
        • 但不在视图或控制器中
        【解决方案4】:

        没有人真正回答这个问题。问题很明确:如何在不再次使用mysqli_connect 的情况下回收codeigniter 数据库连接 以与本机mysqli_query 函数一起使用。 上面赞成的答案对发行人的问题没有任何帮助。

        在$alreadyconn 变量中使用$this->db->conn_id 作为数据库连接引用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-20
          相关资源
          最近更新 更多