变量不起作用

时间:2014-04-08 22:35:58

标签: php mysql variable-variables

我有一些似乎无法运作的代码。我使用表单发布值(绿色,蓝色,红色等),并使用该帖子值作为变量名称的一部分在数据库中查找某些内容。

$mine = 'green';

$querymine = $dbcon->prepare('SELECT * FROM mine WHERE playerid = :playerid');
$querymine->execute(array(
    'playerid' => $playerid
));
$rowmine = $querymine->fetch(PDO::FETCH_ASSOC);

if (${'rowmine[\'has'.$mine.'\']'} == 0) {
    header("location:mine.php");
    die();
}

它正在查找列" hasgreen",在这种情况下是INT 4。问题是,它告诉我$ rowmine [' hasgreen']为NULL,因此我被踢回了#34; mine.php"。我不确定问题是什么,也许是使用\'在变量名?

2 个答案:

答案 0 :(得分:3)

你有一个阵列。这里没有理由使用变量变量 您只需使用$rowmine['has'.$mine]代替!

由于您可能是初学者:如果您使用变量变量,则总是考虑使用数组。变量变量是获取不可读的意大利面条代码的好方法。

答案 1 :(得分:1)

不需要{},试试这个:

 if ($rowmine['has'.$mine] == 0)