我有一些似乎无法运作的代码。我使用表单发布值(绿色,蓝色,红色等),并使用该帖子值作为变量名称的一部分在数据库中查找某些内容。
$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"。我不确定问题是什么,也许是使用\'在变量名?
答案 0 :(得分:3)
你有一个阵列。这里没有理由使用变量变量
您只需使用$rowmine['has'.$mine]
代替!
由于您可能是初学者:如果您使用变量变量,则总是考虑使用数组。变量变量是获取不可读的意大利面条代码的好方法。
答案 1 :(得分:1)
不需要{}
,试试这个:
if ($rowmine['has'.$mine] == 0)