【发布时间】:2019-09-15 03:30:06
【问题描述】:
我想知道什么更有效,只进行一次查询并将结果存储在一个数组中,然后使用 PHP 中的 in_array 函数检查这个数组,或者每次我需要检查值时进行 MySQL 查询?
例如: 我创建了这个函数来将查询存储在一个数组中,所以这个查询只会进行一次。
private function carregaPermissoes(){
$query = mysql_query("SELECT permissao_nome FROM sisgrupopermissoes WHERE id_grupo = ".$this->getGid().";");
if (mysql_num_rows($query) > 0){
$array_permissoes = array();
while ($row = mysql_fetch_array($query)){
array_push($array_permissoes, $row["permissao_nome"]);
}
return $array_permissoes;
}
}
然后每次我需要检查它时,我就使用这个功能:
public function checkPermissao($permissao){
$this->setPermissao($permissao);
if (in_array($this->getPermissao(), $this->getGrupoPermissao())){
return true;
}else{
return false;
}
}
这是一个好方法吗?还是每次我需要检查时都进行查询?
【问题讨论】:
-
一般来说,除非您需要最新信息,否则到数据库的往返次数越少越好。请注意,您使用的是过时、不安全且已弃用的 API。
-
同意@Strawberry。如果您想在特定情况下确定答案,请以两种方式编写,并衡量性能。 stackoverflow.com/a/1202746/350538