0

以下を使用して、データベースからユーザーデータを取得しています。

$stmt = $db->prepare("SELECT usernames FROM login.users WHERE emails = :email");
$stmt->bindValue(":email", $email);
$stmt->execute();

ユーザー名以外のフィールドもあります (具体的にどのフィールドを使用するかはまだ決めていません)。

1 人のユーザーのデータを取得しているので、1 行のデータが返されるはずです。したがって、次を使用できます。

$data = $stmt->fetch(PDO::FETCH_ASSOC);

これにより、$data に連想配列が得られます。しかし、どうすればそれを $_SESSION に転送できますか?

PHPでの配列のコピーは、私に使用するアイデアを与えました:

$_SESSION[$index] = $data[$index];

または同様ですが、 $index が何であるかを自動的に見つけるにはどうすればよいですか? $_SESSION['columnname'] = $data['columnname']SELECT ステートメントを変更して、単一の列ごとに必要なく、さまざまな列を含めることができれば、本当に気に入っています。

4

2 に答える 2

6

$data 全体を単一のセッション変数に格納できます。

$_SESSION['data']=$data;

または、次のようにすることもできます。

foreach($data as $key => $value)
    $_SESSION[$key]=$value;
于 2012-09-19T11:33:06.063 に答える
0

DB情報をセッションに保存しないでください。セッションは、揮発性データを永続化するように設計されています。データベース内のデータはすでに永続的であるため、データベースデータをセッションに配置する必要はなく、設計も不適切です。

于 2012-09-19T11:38:24.487 に答える