最后花点时间搞乱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(),只是为了访问返回的数组。假设上面发布的方法更有效,我是否正确?还有,有更好的方法吗?
一如既往地谢谢,
答案 0 :(得分:1)
首先不要使用mysql_query它是折旧的!使用PDO也不要向您的连接请求多个。我不确定它是否是最好的方法,但我发现更好的方法是拥有一个数据库类。有一个连接到您的数据库的构造函数,然后有一个查询函数,您在查询中传递并返回结果,所以你需要的只有两种方法! http://php.net/manual/en/class.pdo.php
上有一些课程示例答案 1 :(得分:1)
您不会在这里得到关于“最佳”或“最有效”的明确答案,因为这实际上取决于您的应用程序的需求 - 数据访问模式,您的数据大小继续使用,你对访问数据的延迟容忍等等。
你总是需要权衡利弊。例如,如果将结果数组存储在类中,则需要使用内存来执行此操作。因此,如果阵列很小并且您需要经常通过处理请求来访问数据,这可能是您最好的选择。但是,如果数组非常大并且您将此数据存储在内存中的请求的并发性很高,那么您可能不希望分配那么多的服务器内存来存储每个请求的结果。谁知道,甚至可能最好使用缓存来获得某些结果。
最重要的是,您必须了解您正在进行的权衡,并在您的环境中对其进行测试,以确定哪些最有效地实现您的目标,无论是减少响应延迟,减少内存使用量等等。