codeigniter数据库从视图调用

时间:2012-06-20 13:43:17

标签: php mysql codeigniter

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

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

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

$db=mysql_connect(...);
mysql_select_db(...);

这意味着每次更改视图时,在将文件从开发站点复制到实际站点之前,我们需要更改这些视图中的变量。

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

我尝试了$ this-> db->数据库,但收到错误“Undefined property:CI_Loader :: $ db”

提前致谢

4 个答案:

答案 0 :(得分:2)

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

$db=mysql_connect(...);
mysql_select_db(...);

在视野中。尝试从视图中删除这些调用。并从模型中调用它。

这就是MVC in codeigniter所使用的。其他有关使用codeigniter框架的用法。

另见:

  1. access model from view in codeigniter?
  2. CodeIgniter - Calling a function from inside a view

答案 1 :(得分:0)

首先,不要急于将数据库调用移动到视图,而是看看这个答案:https://stackoverflow.com/a/5835321/1444604

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果此网站正在建设中,那么现在解决所有这些编程问题要比以后更好。

记住不推荐使用mysql_ *代码,主机不会接受更长时间。

提示您可以使用我们有时会忘记的内容,那些替换文本的选项存在于许多文本编辑器和IDE中,通常使用快捷键ctrl + H,您可以在许多文件中重写大量代码,但要小心,否则这可能会变得更糟。

嗯...说,如果您在加载数据库之前使用此代码,那么您在视图中尝试做的事情$ this-> db-> database()可能会有效。我认为应该 像创建库时一样工作。

$ CI =& get_instance();

看看,但即使它有效,也要尽可能地避免它: https://www.codeigniter.com/user_guide/general/creating_libraries.html

祝你好运!