1

是否可以要求我的数据库中的所有数据并从中创建对象并将其保存到数组或其他东西中,所以我只需要调用数据库一次,然后我只使用我的本地数组?如果是,它是如何完成的?

public function getAllProjects(){

   $query="SELECT * FROM projects";
   $result=mysql_query($query);
   $num=mysql_numrows($result);
   while ($row = mysql_fetch_object($result)) {
      // save object into array
   }
}

public function fetchRow($row){
  include("Project.php");
  $project = new Project();

  $id=$row->id;
  $project->setId($id); 

  $title=$row->title;
  $project->setTitle($title);   

  $infos=$row->info;
  $project->setInfo($infos);

  $text=$row->text;
  $project->setText($text);

  $cate=$row->category;
  $project->setCategory($cate);

  return $project;
}

如果我有例如这个代码。如何将对象正确存储到数组中,从中获取数据?为什么我不能制作多个“项目”类型的对象?

4

2 回答 2

2

让我们忽略您将耗尽内存的事实。

如果您将所有内容都放在数组中,您将不再拥有关系数据库的功能。
尝试在 php 中搜索数兆字节的多维数组,并为延长的茶歇时间做好准备。如果您正在考虑这样做是因为您觉得数据库很慢......那么您应该了解数据规范化和正确使用索引。
没有 NoSQL 不是答案。
很抱歉弹出你的气球。

编辑添加:您可以使用 memcache 存储一些昂贵流程的最终产品。不必费心存储琐碎查询的结果,mysql 的内部缓存已针对这些进行了非常优化。

于 2012-09-25T09:41:17.610 回答
1

您应该$_SESSION在 php 中使用 vars,要使用它们,session_start()请在代码的开头添加一个。然后你可以设置变量$_SESSION['selectaname'] = yourvar

没有什么能阻止您进行类似的 sql 查询"SELECT username FROM users WHERE id = 1",然后设置$_SESSION['user'] = $queryresult

然后你会有这个:

echo $_SESSION['user'];

"mylogin"
于 2012-09-25T09:39:53.523 回答