我有以下代码:

$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'];
        }
}

表中有ids,quotes的字段,然后每个标记有一个单独的列(ang表示愤怒就是一个例子)。pretag是一个满是标签的数组(rom是浪漫,ang是愤怒,dece是欺骗)我正在浏览,试图找到那些ID和标签的引号。当我使用ang运行该语句时,它在SQL中运行良好,它选择IDs fine,但是当我尝试使用变量为标记选择列/字段时,不会返回任何结果。有什么想法吗?

最佳答案

在应该使用列名的地方使用变量$indtag

SELECT `id`, `$indtag` FROM `beyonce` WHERE `$indtag` LIKE '%$indtag%'
              ^                              ^

正如@tadman指出的那样,不要这样做,用indtag和一个准备好的语句,否则你就要疯狂了。

关于php - PHP变量在MySQLi语句中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27989786/

10-11 02:17