我试图根据登录的用户从数据库中获取某些信息。现在我可以从列和行中获取信息,但不是用户特定的。我可以使用$_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> ';
}
答案 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_ *函数。