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

$_SESSIONphp で変数を使用する必要があります。それらを使用するにsession_start()は、コードの先頭に a を追加します。次に、変数を設定できます$_SESSION['selectaname'] = yourvar

"SELECT username FROM users WHERE id = 1"SQLクエリを作成してから設定することを妨げるものは何もありません$_SESSION['user'] = $queryresult

次に、これがあります:

echo $_SESSION['user'];

"mylogin"
于 2012-09-25T09:39:53.523 に答える