如何从数据库获取信息到会话?

时间:2012-02-23 04:13:17

标签: php mysql session

我想通过使用数据库中的信息开始一个新的PHP会话,但我不知道如何。救命?感谢。

例如,我有带有TableB的DatabaseA,带有RowC。我想将RowC的名字存储到PHP会话中。我该怎么做?

5 个答案:

答案 0 :(得分:2)

  1. 从数据库中获取信息
  2. 将其存储在会话中
  3. 这两项操作都有很多教程。

答案 1 :(得分:1)

我意识到你不需要像这样参数化一个小的受控查询,但是由于你处于学习阶段,你应该研究PDO和参数化的查询,并学习正确的方法来避免将来的麻烦。

<?php

$host   = "localhost";
$dbname = "mydb";
$user   = "username";
$pass   = "password";

//this is where you set the value you use in your where clause to determine
//what name to get back - I assume you'll use $_GET or $_POST or else to populate this
$name   = "bob";

    try {
        $dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    } catch(PDOException $e) {
        echo "Problem connecting to DB, try again; if it presists contact admin.";
        exit();
    }

    $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

    $sth_select = $dbh->prepare("SELECT row FROM table WHERE firstname = :name");

    $sth_select->setFetchMode(PDO::FETCH_ASSOC);

    $sth_select->execute(array('firstname' => $name));

    while ($row = $sth_select->fetch()) {
        $firstname = $row['firstname'];
    }

    session_start();

    $_SESSION['firstname'] = $firstname;

?>

答案 2 :(得分:0)

伪代码:

$fn = "";
SELECT RowC FROM TABLE B;
while($row = mysql_fetch_array($result_of_query) {
      $fn = $row['firstname'];
}
session_start();
$_SESSION['firstname'] = $fn;

阅读this以了解如何在php中使用数据库(MySql)。

答案 3 :(得分:0)

SELECT first_name FROM table_name WHERE field_name = $ value

如果您只想要第一行: ORDER BY DESC LIMIT 1

最后一行: 订购ASC限制1

取决于您的WHERE子句的内容取决于您获得的结果数量。

如果3个人的名字相同,那么它就是WHERE last_name = bob。 名为戴夫鲍勃的3个人将加载...如果你只想要戴夫...

你需要添加

查询结尾处的GROUP BY first_name ...将只返回一个Dave

编辑你不需要WHERE的子句我只是在这个例子中添加。但是,如果你想要一个特定的名称(只返回一个名称),这是唯一的方法。

答案 4 :(得分:-1)

我将假设您要求用户输入以限制查询。如果你使用post来提交用户信息,你会做这样的事情......

session_start();

$userdata = mysql_real_escape_string($_POST['userdata']);
$result = mysql_query("select RowC from TableB where somedata='$userdata'") or die(mysql_error());
$result = mysql_fetch_row($result);
$result = $result[0];
$_SESSION['firstname'] = $result;

当然,您还必须连接到数据库,并将“somedata”替换为一些唯一的列。请务必同时致电session_start()