根据登录用户的ID显示数据库表中的数据

时间:2015-10-14 19:55:47

标签: php html mysql

我试图根据登录的用户从数据库中获取某些信息。现在我可以从列和行中获取信息,但不是用户特定的。我可以使用$_SESSION吗?这会在$query吗?

PHP:

$query = "SELECT * ".
"FROM leavetable, users ".
"WHERE leavetable.users_id = users.id ";

$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
    echo ' <tr> ';
    echo ' <td> ';
    echo $row['id'];
    echo ' <td> ';
    echo $row['hours'];
    echo ' <td> ';
    echo $row['email'];
    echo ' <td> ';
    echo $row['username'];
    echo ' <td> ';
}

1 个答案:

答案 0 :(得分:0)

是的,但绝不会像Shahnewaz先生的回答所建议的那样建立你的SQL查询。这种方法很容易受到SQL注入攻击,我建议你花点时间去read about them进行实验。

执行参数化查询的正确方法是使用预准备语句:

$stmt = $dbh->prepare('SELECT * FROM leavetable WHERE leavetable.users_id = :id');
$stmt->bindParam(':id', $_SESSION['user_id']);
$stmt->execute();
$result = $stmt->fetch();

要记住的关键点是传递给prepare方法的查询字符串必须是普通的硬编码字符串。您可以在需要的地方使用命名的placeholers(:whatever),如示例所示。

顺便说一下,在这个示例中,$dbh将是PDO类的一个实例,您might consider使用它而不是旧的mysql_ *函数。