PHP PDO通过USERNAME获取信息

时间:2015-06-02 05:54:49

标签: php mysql pdo

好的,我已登录为" Admin",管理员有信息 - money,xp。 我有代码:

$query = dbConnect()->prepare("SELECT * FROM players");
$query->execute();

foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
    echo 'Name: '. $row['Name'] . '<br>Money: '.$row['Money'] . '<br>XP: '.$row['XP'];
}

我在mysql中有2个用户。登录人员如何收到该信息?

4 个答案:

答案 0 :(得分:3)

将登录的用户ID保存在普通变量或SESSION变量中,并在where子句

中使用它
//so first we save the logged-in user id when the user logs in
$_SESSION['UserID'] = //loggedin user id;

//we then use the user id we save in a where clause to get that specific user
$query = dbConnect()->prepare('SELECT * FROM players WHERE playerID = "'.$_SESSION['UserID'].'"');
$query->execute();

foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
    echo 'Name: '. $row['Name'] . '<br>Money: '.$row['Money'] . '<br>XP: '.$row['XP'];
}

答案 1 :(得分:2)

您可以使用用户ID [{1}}

设置会话变量

然后你可以像这样构建你的SQL语句:

$_SESSION['id'] = 'user1'

答案 2 :(得分:2)

只需使用当前登录的用户选择特定行(用户凭据)。

假设您正在使用会话

session_start();
$username = $_SESSION['username'];

$connection = dbConnect();
$query = $connection->prepare('SELECT * FROM players WHERE username = ?');
$query->execute(array($username));

$result = $query->fetch(PDO::FETCH_ASSOC);
if(!empty($result)) {
    // echo credentials
    // echo $result['Money']; // etc
}

->bindValue与您的命名占位符:

session_start();
$username = $_SESSION['username'];

$connection = dbConnect();
$query = $connection->prepare('SELECT * FROM players WHERE username = :username');
$query->bindValue(':username', $username);
$query->execute();

$result = $query->fetch(PDO::FETCH_ASSOC);
if(!empty($result)) {
    // echo credentials
    // echo $result['username']; // etc
}

答案 3 :(得分:1)

使用bindValue():sessionID的值绑定到$_SESSION['UserID']的值,或者存储您的UserID。它可以使您的查询更容易创建,并且您可以使用while循环遍历查询中的所有结果。

$DBO = dbConnect();
$query = $DBO->prepare("SELECT * FROM players WHERE playerID=:sessionID");
$query->bindValue(':sessionID', $_SESSION['UserID'], PDO::PARAM_STR);
$query->execute();
$query->setFetchMode(PDO::FETCH_ASSOC);

while ($row = $query->fetch()) {
    //$results[] = $row;
    echo 'Name: ' . $row['Name'] . '<br>Money: '. $row['Money'] . '<br>XP: ' . $row['XP'];
}