我想通过使用数据库中的信息开始一个新的PHP会话,但我不知道如何。救命?感谢。
例如,我有带有TableB的DatabaseA,带有RowC。我想将RowC的名字存储到PHP会话中。我该怎么做?
答案 0 :(得分:2)
这两项操作都有很多教程。
答案 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()
。