PHP 中 MySQL 表中的仅限用户行




我正在PHP或Web主机管理中创建一种客户区类型的网站,该网站将包含客户端的详细信息以及其Web帐户的详细信息。

这是我的桌子

ID----USER----NAME----ACCOUNT----PASSWORD
1----user1----name1----accont1----password2
2----user1----name2----accont2----password2
3----user3----name3----accont3----password3

现在我想知道的是我如何只能获取user1的帐户详细信息并将其显示在PHP中。喜欢这个

You are user1
Your Accounts are accont1 & accont2 and 
their passwords are password1 & password2 and 
their name is name1 & name2

顺便说一句!name1和name2是主机帐户的名称,我使用PDO连接到mySQL
提前谢谢!!

编辑:这是我手动创建变量并将其插入HTML的方式

$id2 = "2";
$stmt2 = $conn->query("SELECT * FROM accounts WHERE ID = $id2");
$row2 = $stmt2->fetch();
$uname2 = $row2['account'];
$label2 = $row2['name'];

现在我需要的是我想在登录后自动显示ID 1和2,如果您也请帮助我如何做到这一点!!我是初学者,所以请考虑提供帮助!!

使用 PDO,我们不需要插入与查询内联的变量,而是对它们进行参数化。这有助于防止 SQL 注入攻击并遵循最佳实践。我们使用问号来表示变量的位置。

SELECT NAME, ACCOUNT FROM accounts WHERE ID = ?

要将变量作为参数分配给查询,我们使用一个数组 - 在本例中,我们只有 1 个变量需要处理。

$stmt->execute([$id]);

PDO是可遍历的,因此我们可以使用foreach遍历结果。通过使用 .=,我们可以将新数据连接到变量内现有数据的右侧。我们还可以使用计数器来知道何时需要添加与号和空格。

$id = "1";
$stmt = $pdo->prepare('SELECT NAME, ACCOUNT FROM accounts WHERE ID = ?');
$stmt->execute([$id]);
$i = 0;
foreach ($stmt as $row)
{
if ($i > 0) {
$accounts .= ' & ';
$names .= ' & ';
}
$accounts .= $row['NAME'];
$names .= $row['ACCOUNT'];
$i++;
}
echo "Your Accounts are $accounts and <br>";
echo "Their names are $names";

我故意跳过了密码字段。密码字段不应以纯文本格式存储数据。如果数据库被破坏,所有这些密码都将被泄露。最好对密码进行哈希处理并存储哈希值。

有很多关于这个主题的文章。我建议任何运行 PHP 7.2+ 的人查看 Argon。

最新更新