【问题标题】:How can I connect to a database manually in CodeIgniter?如何在 CodeIgniter 中手动连接到数据库?
【发布时间】:2010-09-30 15:43:11
【问题描述】:

是否可以在 CodeIgniter 中使用任何 php 驱动程序手动连接到数据库?我会在模型中打开一个连接吗?我有一个 CodeIgniter 无法满足的需求,但我想将它用于它的 MVC 架构。我只是不能像在 MySQL 等演示中那样使用它的 ActiveRecord。

如果我只能进行“常规”非 CodeIgniter 数据库连接,如何将信息输入我的控制器?

另外,我想以这种方式使用 CodeIgniter(没有活动记录)但对于它的所有其他“东西”,我错了吗?

谢谢。

【问题讨论】:

    标签: codeigniter database-connection


    【解决方案1】:

    这是一个使用函数式 php 连接到 mysql 数据库的非常简单的示例。它来自 php 手册。把它放在你的模型中。通过以正常 CI 方式调用模型函数来调用它。它将返回结果数组,因此将模型调用分配给控制器中的变量。

    <?php
    function my_model_query(){
        //replace the function arguments with your information
        $link = mysql_connect('host_name', 'mysql_user', 'mysql_password');
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        //your code here
        $query = "SELECT * FROM mytable";
        $result = mysql_query($query);
        while($row = mysql_fetch_assoc($result)){
    
            $result_array[]['your_field_1'] = $row['your_field_1'];
            $result_array[]['your_field_2'] = $row['your_field_2']; 
            //and so on
    
           }
    
        //close the connection when you are done
        mysql_close($link);
    
        //send results back to controller
        return $result_array;
    
    
    }//endfunction
    ?>
    

    您可以在模型方法中使用它。假设您返回结果

    编辑:将mysql_close移到return语句上方

    【讨论】:

    • 在这段代码中mysql_close($link); 永远不会被执行... :-)
    • 因为是在return语句之后?
    • 无论如何我都将它用于 Sqlite。谢谢。
    【解决方案2】:

    我真的不知道您的问题是什么,但是您可以在没有活动记录的情况下执行查询。

    例如

    $this->db->query();
    

    【讨论】:

    • 我只是说我不想使用 CI 附带的内置驱动程序。我不知道该怎么做。
    • 即使内置驱动程序使用为每个数据库提供的功能库? IE。用于 CI 的 MySQL 驱动程序使用 mysql_connect、mysql_query、mysql_fetch_assoc 等。驱动程序处理您不必担心的手续。
    【解决方案3】:

    手动连接数据库,就是普通代码

    $link = mysqli_connect('localhost','root','','db_iris');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      相关资源
      最近更新 更多