SELECT $ x(php变量)FROM

时间:2017-06-19 06:03:01

标签: php mysql

我试图从mysql数据库中回显一个字符串。数据库中的列(en,es,de,it ...)代表不同的语言,我想从一行和当前语言的列中选择值($ language =“en”,或$ language =“es” ...)。我试过了:

<?php
$result = mysqli_query($con, 'SELECT "' .$language. '" FROM page WHERE 
title="findInstructor" LIMIT 1');
$row = mysqli_fetch_row($result);
print_r($row[0]);
?>

问题是,我得到$language变量的屏幕值,而不是数据库中的值。如果我试试f.e.对于英语,一切都很好:

$result = mysqli_query($con, 'SELECT en FROM page WHERE 
title="findInstructor" LIMIT 1');

或者,如果我可以做类似的事情:

$result = mysqli_query($con, 'SELECT * FROM page WHERE 
title="findInstructor" LIMIT 1');
....
print_r($row[$language]);

感谢您的回答!

2 个答案:

答案 0 :(得分:4)

因为带有双引号和$language的换行SELECT将其视为字符串而不是列名。试试这个:

<?php
    $result = mysqli_query($con, 'SELECT ' .$language. ' FROM page WHERE 
        title="findInstructor" LIMIT 1');
    $row = mysqli_fetch_row($result);
    print_r($row[0]);
?>

答案 1 :(得分:1)

如下面的代码所示,如​​果您将变量名称放在双引号中,则将其视为静态值。

'SELECT "' .$language. '" FROM page WHERE 
title="findInstructor" LIMIT 1'

所以不用这个,你必须尝试下面的代码

'SELECT ' .$language. ' FROM page WHERE 
title="findInstructor" LIMIT 1'

希望这会对你有所帮助。