Php 选择列作为变量

Php 选择列作为变量,php,sql,select,pdo,Php,Sql,Select,Pdo,我不知道怎么做。我查过一些例子,但使用@variable对我来说有点模糊,我不知道这是什么,也不知道如何查找我的答案 我有一个变量$slotname,它可以是武器或护身符或任何东西。 在我的数据库中,它是武器名或护身符名,这就是为什么之后是。 $slotname = $_POST['slot'].'_name'; $naam = 'Player1'; $sql = $db->prepare("SELECT @slotname FROM player WHERE naam = :naam")

我不知道怎么做。我查过一些例子,但使用@variable对我来说有点模糊,我不知道这是什么,也不知道如何查找我的答案

我有一个变量
$slotname
,它可以是
武器
护身符
或任何东西。 在我的数据库中,它是
武器名
护身符名
,这就是为什么
之后是

$slotname = $_POST['slot'].'_name';
$naam = 'Player1';
$sql = $db->prepare("SELECT @slotname FROM player WHERE naam = :naam");
$sql->execute(array(":naam" => $naam));
$fetch = $sql->fetch();
因此,在本例中,我想从用户
Player1
中选择列
武器名称
,但我不知道如何操作。
有什么提示吗?

您的数据库结构基本上是错误的

不应该有类似于
slot\u name
字段的东西


应该有一个不同的表slots,其中必须存储所有的slots,并且由值而不是字段名选择

$db->query(“SET@slotname=$slotname”);prepare语句之前由于参数化/准备好的查询的工作方式,无法将值绑定到select列或它所选择的表。我该怎么做?每个
插槽都需要一个名称和一个值。例如,我不知道你的回答是什么意思。你能解释一下吗?已经很清楚了-另一张桌子。由列
char\u id
slot
item\u id
组成。从该表中,您可以轻松选择任何设备代码,但不鼓励回答。not working@netham它只返回相同的名称。当$slotname=武器名称时,它返回这个:数组([武器名称]=>武器名称[0]=>武器名称),而它应该返回数组([武器名称]=>金剑[0]=>金剑)@ᵈˑ我知道,但如果你看到了问题和答案,做出任何解释都无济于事。就这么简单。如果可以,并且你相信,我欢迎你使用编辑按钮,编辑答案,然后简单地向下投票,因为你看到的是一个代码唯一的答案。它总是黑白相间的吗?“不,我想是的。”回答,现在让我试试。我做了一个小小的改变。基本思想是连接并获得一个字符串。尝试回显该字符串并查看您得到的查询表单。
sql = $db->prepare("SELECT ".$slotname." FROM player WHERE naam = :naam");