使用php类最有效的方法来使用mysql结果

时间:2013-07-16 17:41:51

标签: php mysql class oop

最后花点时间搞乱php类,并好奇知道以下是否是重复使用mysql结果的最有效方法:

class ProjectDetails {
private $ProjectDetails;
function getDetails($projectid) {
    $query_GetDetails = 
    "SELECT * FROM projects WHERE ProjectID = $projectid";

    $results_ProjectDetails = mysql_query($query_GetDetails);
    $ProjectDetails = mysql_fetch_array($results_ProjectDetails);
    $this->ProjectDetails = $ProjectDetails;

}

    function getDetail($el) {
         $this->ProjectDetails[$el];
    }

}

在阅读这个主题时,我发现有些人会在他们想要的每个结果函数中调用它们的查询函数,在我的例子中,它会在GetDetail()中调用GetDetails(),只是为了访问返回的数组。假设上面发布的方法更有效,我是否正确?还有,有更好的方法吗?

一如既往地谢谢,

2 个答案:

答案 0 :(得分:1)

首先不要使用mysql_query它是折旧的!使用PDO也不要向您的连接请求多个。我不确定它是否是最好的方法,但我发现更好的方法是拥有一个数据库类。有一个连接到您的数据库的构造函数,然后有一个查询函数,您在查询中传递并返回结果,所以你需要的只有两种方法! http://php.net/manual/en/class.pdo.php

上有一些课程示例

答案 1 :(得分:1)

您不会在这里得到关于“最佳”或“最有效”的明确答案,因为这实际上取决于您的应用程序的需求 - 数据访问模式,您的数据大小继续使用,你对访问数据的延迟容忍等等。

你总是需要权衡利弊。例如,如果将结果数组存储在类中,则需要使用内存来执行此操作。因此,如果阵列很小并且您需要经常通过处理请求来访问数据,这可能是您最好的选择。但是,如果数组非常大并且您将此数据存储在内存中的请求的并发性很高,那么您可能不希望分配那么多的服务器内存来存储每个请求的结果。谁知道,甚至可能最好使用缓存来获得某些结果。

最重要的是,您必须了解您正在进行的权衡,并在您的环境中对其进行测试,以确定哪些最有效地实现您的目标,无论是减少响应延迟,减少内存使用量等等。