1

终于花时间去弄乱 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(),只是为了访问返回的数组。假设上述发布的方法更有效,我是否正确?而且,有没有更好的方法来做到这一点?

一如既往地感谢,

4

2 回答 2

1

Firstly don't use mysql_query it is depreciated! Use PDO also don't make multiple requested to your connect. I'm not sure if it is the best way but I have found the better way is to have a database class. Have a constructor which connects to your database then have a query function which you pass in your query and returns your results so in a way all you need is 2 methods! There are a few class examples on http://php.net/manual/en/class.pdo.php

于 2013-07-16T17:46:42.017 回答
1

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

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

最重要的是,您确实必须了解您正在做出的权衡并在您的环境中对其进行测试,以确定最能满足您的目标的方法,无论是减少响应延迟、减少内存使用还是其他什么。

于 2013-07-16T18:27:11.710 回答