1

我有一些似乎不起作用的代码。我正在使用一个表单来发布一个值(绿色、蓝色、红色等),并使用该发布值作为变量名的一部分在数据库中查找某些内容。

$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,因此我被踢回“mine.php”。我不确定问题是什么,也许是在变量名中使用了\'?

4

2 回答 2

3

你有一个数组。这里没有理由使用变量变量。
您可以简单地使用$rowmine['has'.$mine]

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

于 2014-04-08T22:38:53.800 回答
1

不需要{},试试这个:

 if ($rowmine['has'.$mine] == 0)
于 2014-04-08T22:38:30.867 回答