我有以下代码:
$indtag = '';
foreach($pretag as &$indtag) { //cycles through tags, puts quotes into check by tag
$quote = mysqli_query($mysqli, "SELECT `id`, `$indtag` FROM `beyonce` WHERE `$indtag` LIKE '%$indtag%'");
while($row = mysqli_fetch_assoc($quote)) {
echo $row['$indtag'];
echo $row['id'];
}
}
该表包含id
s,quote
s的字段,然后是每个标记的单个列(愤怒为ang
为例)。 pretag
是一个充满标记的数组(rom
是浪漫,ang
是愤怒,dece
是欺骗)我正在浏览,试图找到带有这些ID的引号和标签。当我使用ang
运行它时,该语句在SQL中工作正常,它选择ID很好,但是当我尝试使用变量选择标记的列/字段时,没有任何内容返回。有什么想法吗?
答案 0 :(得分:2)
您正在使用变量$indtag
,您应该使用列名indtag
:
SELECT `id`, `$indtag` FROM `beyonce` WHERE `$indtag` LIKE '%$indtag%'
^ ^
正如@tadman指出的那样,不要这样做,使用mysqli_stmt_bind_param
准备好的陈述,或者你是疯狂的。
答案 1 :(得分:0)
您的代码中的这一行不需要引号。
echo $row['$indtag']; // Won't work
echo $row[$indtag]; // Will work