如何在php中使用主键选择任意行

如何在php中使用主键选择任意行,php,mysql,Php,Mysql,我在使用php和sql,我在使用这个表 因此,它有一个串行列user\u id,用作主键(自动递增)。现在,如果用户想删除他的个人资料,我使用 <?php $sql='DELETE FROM userinfo WHERE user_name="'.$_SESSION["username"].'"'; ?> 它工作正常。$\u SESSION[“username”]是用户的名字。用户名和用户名也是唯一的。但是现在主键的用途是什么,我如何使用该腐蚀主键来删除用户名。这只是一个例子。

我在使用php和sql,我在使用这个表 因此,它有一个串行列
user\u id
,用作主键(自动递增)。现在,如果用户想删除他的个人资料,我使用

<?php
$sql='DELETE FROM userinfo WHERE user_name="'.$_SESSION["username"].'"';
?>


它工作正常。
$\u SESSION[“username”]
是用户的名字。用户名和用户名也是唯一的。但是现在主键的用途是什么,我如何使用该腐蚀主键来删除
用户名
。这只是一个例子。我现在有一个评论表,如果用户删除一条评论,我必须定义“blog\u name”、“username”、“comment\u time”,然后它会选择我想要删除的评论,因此这里还有如何使用主键删除该内容,

在用户登录时将主键值(user\u id)存储在会话变量中,并在删除查询中使用它

要删除注释,请使delete链接将与该注释对应的主键传递给delete查询

例如:您有一个删除按钮,当用户单击该按钮时,将重定向到发生删除的php页面

<a href="deletion.php?pk='put the primary key for that comment here'"><button>Delete</button></a>

deletion.php

您可以从
$\u get[pk]
获取该注释的主键。 使用它删除注释

通过使用登录用户的会话变量,确保检查试图删除注释的用户是否是发布注释的用户

此方法需要从当前页面重定向到delete.php,然后返回到当前页面。
如果要避免这种情况,请使用ajax在后台传递值,并仅刷新页面的注释部分。

您的意思是将
用户名设置为空值吗?或者您的意思是想使用主键
user\u id
来删除整个记录,而不是使用
user\u name
字段?@NathanRobb我想使用user\u id而不是user\u name在用户登录时在会话中存储用户id。然后在delete queryExactly中使用它,以便
$sql='delete FROM userinfo WHERE user_id=“”。$\u SESSION[“userid]”.“
或类似的东西我只是问主键的用途是什么,最好使用user_name作为主键,或者在其他表中我们应该使用复合主键,因为我们不能选择、删除或使用这些自动生成的主键做任何事情,有没有使用it@Nanthan罗伯,伙计,这就是我要问的,你说的“将该注释的主键放在此处,只要想想我是如何获得主键的,我们必须使用该表的其他列来获得主键。然后将相应的主键值分配给与特定注释关联的变量,只取长根,因此使用该串行主键没有任何用处,我们可以使用表的其他列直接访问该行,但当我们将它们分配为其他表中的forign键时,串行主键非常有用。否则,串行主键就没有用了。它不是“长根”,而是你做事的方式,你的问题是如何做到这一点。