Php 从视图调用codeigniter数据库

Php 从视图调用codeigniter数据库,php,mysql,codeigniter,Php,Mysql,Codeigniter,嘿,伙计们,希望你们能帮我 基本上,我正在开发一个由其他人使用codeigniter创建的网站。该站点有两个实例,一个用于开发,一个用于live。该网站仍在建设中,这意味着文件不断被更改,并从开发网站(经过测试)移动到活动网站 现在的问题是,最初创建网站的人从几个视图中调用了一些数据库。为了从视图访问数据库,他从视图手动连接到数据库,即使用 $db=mysql_connect(...); mysql_select_db(...); 这意味着每次更改视图时,在将文件从开发站点复制到活动站点之前,

嘿,伙计们,希望你们能帮我

基本上,我正在开发一个由其他人使用codeigniter创建的网站。该站点有两个实例,一个用于开发,一个用于live。该网站仍在建设中,这意味着文件不断被更改,并从开发网站(经过测试)移动到活动网站

现在的问题是,最初创建网站的人从几个视图中调用了一些数据库。为了从视图访问数据库,他从视图手动连接到数据库,即使用

$db=mysql_connect(...);
mysql_select_db(...);
这意味着每次更改视图时,在将文件从开发站点复制到活动站点之前,我们需要更改这些视图中的变量


将所有查询移动到模型,然后通过控制器调用它们会花费太长时间,因此我想知道是否有一种方法可以访问database.php文件中的数据库变量,并将它们作为mysql\u connect的变量传递

我尝试了$this->db->database,但得到了错误“Undefined property:CI_Loader::$db”


提前感谢

首先,不要急于将数据库调用移动到视图,请看下面的答案:

无法从视图访问数据库对象。你也不应该这样做

$db=mysql_connect(...);
mysql_select_db(...);
在视野中。尝试从视图中删除这些调用。从模型中调用它

这就是我们的目的。另外,请查看使用codeigniter框架的用途

另见:


  • 在constant.php中定义常量为它们分配数据库用户名、密码、主机名等,并在您想要的任何地方使用它们

    如果这个网站还在建设中,现在解决所有这些编程问题应该比以后好得多

    请记住,mysql_*代码已被弃用,主机将不再接受

    提示您可以使用我们有时忘记的功能,即替换som中显示的文本的选项许多文本编辑器和IDE,通常使用快捷键ctrl+H,您可以在许多文件中重写大量代码,但请小心,否则情况会变得更糟

    嗯。。。也就是说,如果您在加载数据库之前使用此代码,您在视图$this->db->database()中尝试执行的操作可能会起作用。我认为应该 就像创建库一样工作

    $CI=&get_instance()

    看一看,但即使有效,也要尽量避免:


    祝你好运

    “将所有查询移动到模型,然后通过控制器调用它们将花费太长时间”这就是我留下问题的地方。将连接详细信息设置为一些常量,并在配置文件中定义它们。这不漂亮,但应该有用。然后,您可以使用if(DEV)use DEV values else use live.听起来像是那个制作代码的人根本不理解或根本不试图理解codeigniter。理想情况下,在控制器使用通过一个或多个模型对db的调用后,应使用从控制器传递到这些视图的数据替换视图中的db调用。将所有查询移动到模型所需的时间是否会比每次要部署某样东西时更新它们所需的时间更长?这不是从视图调用数据库调用的正确方法。这也是安全问题。自动加载模型?包括要从视图调用到模型中的所有函数