在php变量echo中放入一个变量

在php变量echo中放入一个变量,php,php-5.3,Php,Php 5.3,这听起来可能很愚蠢,也可能听起来不安全,但我在我的博客poke1hp中有很多专栏,一直到poke6hp。我需要这样做,如果变量设置为1,它将选择并回显poke1hp列,如果变量为6,它将回显poke6hp列 所以他就是我得到的,应该有用,但不是 if ($_SESSION['pickedslot'] == '1') {$tablename = "poke1hp";} if ($_SESSION['pickedslot'] == '2') {$tablename = "poke2hp";} if

这听起来可能很愚蠢,也可能听起来不安全,但我在我的博客poke1hp中有很多专栏,一直到poke6hp。我需要这样做,如果变量设置为1,它将选择并回显poke1hp列,如果变量为6,它将回显poke6hp列

所以他就是我得到的,应该有用,但不是

if ($_SESSION['pickedslot'] == '1') {$tablename = "poke1hp";}
if ($_SESSION['pickedslot'] == '2') {$tablename = "poke2hp";}
if ($_SESSION['pickedslot'] == '3') {$tablename = "poke3hp";}
if ($_SESSION['pickedslot'] == '4') {$tablename = "poke4hp";}
if ($_SESSION['pickedslot'] == '5') {$tablename = "poke5hp";}
if ($_SESSION['pickedslot'] == '6') {$tablename = "poke6hp";}
我用$tablename做了一个select,在这一点上,我回显了$tablename,一切都很好,列名就在那里。现在,我尝试在上面的select中设置的变量中使用列名

// here we grab the users hp 
$grabhp = $db->prepare("select '$tablename' from new_battles WHERE username = ?");
$grabhp ->execute(array($_SESSION['username']));
$grabhp2 = $grabhp ->fetch(); 

echo $grabhp2 ['$tablename'];

但我什么也没印出来。。。我知道我可以用行代替列,但我是这样编码的…

变量不在单引号内展开:

我建议您不要在示例中使用引号。尝试:

echo $grabhp2[$tablename];
在您提供的示例中,您还错误地处理了MySQLi准备的语句

这里有一个参考:


php不会在单引号分隔的字符串中展开变量。我尝试了双引号分隔的字符串,但仍然不起作用。我已将echo更改为echo$grabhp2[“$tablename”];但仍然不起作用……我认为,这个问题是您不正确地使用MySQLi准备的语句。我建议对这些进行一些研究。或者,您可以使用以下选项:+