我试图从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]);
感谢您的回答!
答案 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'
希望这会对你有所帮助。