1

我正在做一个学校项目,我必须在该项目上创建一个基于 Oracle 数据库的 Web 应用程序,并且在测试了一些 php 框架之后,我目前正在使用 CodeIgniter。我对 MVC 和 php 还很陌生,所以如果我犯了任何错误,请见谅。

我了解(作为 MVC 框架),在我的模型上,可以运行如下查询

$query = $this->db->query("SELECT * FROM tablename");

但是在我的研究中,我读到这是一个很好的做法,每次我们想要运行查询/插入/等时,我们应该打开一个连接并在完成操作后结束它。我相信这应该可以防止“不一致”..类似于

<?php
    $conn = oci_connect('user', 'pass', 'dbname');
    $query = 'select * from tablename';
    $stid = oci_parse($conn, $query);
    oci_execute($stid, OCI_DEFAULT);
    while ($row = oci_fetch_array($stid, OCI_ASSOC)) {
    foreach ($row as $item) {
    echo $item." | ";
    }
    echo "
    \n";
    }
    oci_free_statement($stid);
oci_close($conn);
?>

是这样吗?如果是,那么我在模型上所做的那个命令是否正确?我只能想到在 view.php 文件上运行这个 php 脚本,但这样做我猜我没有实现 MVC '概念',只是调用这种 php 脚本......对吗?我用这两种方法得到了结果,但我不确定哪种方法最好。

提前致谢!

4

2 回答 2

2

你没有做这么多的工作。这是MVC。模式-视图-控制器。一切都已完成和管理。您必须在 config 文件夹中保存的 database.php 文件中提供连接详细信息。ci 将自动与数据库建立连接。

并在模型中调用这些所有查询。根据您的要求在模型中创建一个函数并在控制器中调用它。而且,因此您可以在控制器中获取结果并将其传递给视图。

于 2012-12-08T19:33:29.800 回答
1

由于您使用的是 Codeigniter MVC 框架,因此添加您自己的数据库例程肯定是一种矫枉过正且不好的做法。CI 有一个开发良好且安全的数据库库,使用 CI 活动记录语法大大简化了数据库查询。因此,研究这一点并了解思想槽框架的巨大好处。

http://ellislab.com/codeigniter/user-guide/database/active_record.html

于 2012-12-08T19:35:19.977 回答