从PHP函数获取数组

从PHP函数获取数组,php,mysql,mysqli,Php,Mysql,Mysqli,我的db表看起来像那样 我正在尝试从该函数获取页面标题和内容 function page($current, $lang){ global $db; $txt='txt_'.$lang; $title='title_'.$lang; $data=$db->query("SELECT '$txt', '$title' FROM pages WHERE `id`='$current'"); $data=$data->fetch_array(MYS

我的db表看起来像那样

我正在尝试从该函数获取页面标题和内容

function page($current, $lang){
    global $db;
    $txt='txt_'.$lang;
    $title='title_'.$lang;
    $data=$db->query("SELECT '$txt', '$title' FROM pages WHERE `id`='$current'");
    $data=$data->fetch_array(MYSQLI_BOTH);
    return $data;
}
然后在索引页的开头获取数组值

$data=page($id,$lang)

用这个例子

<title><?=$data[1]?></title>


但是每次都得到相同的结果
title\u en
(en是我的语言变量)。我的代码怎么了?

不要单引号引用字段。MySQL将其解释为字符串

$data=$db->query("SELECT $txt, $title FROM pages WHERE `id` = $current");
或者,您可以在MySQL中使用backticks。但是请注意,
$current
仍然不应该假设它是一个整数字段

$data=$db->query("SELECT `$txt`, `$title` FROM pages WHERE `id` = $current");

不要单独引用您的字段。MySQL将其解释为字符串

$data=$db->query("SELECT $txt, $title FROM pages WHERE `id` = $current");
或者,您可以在MySQL中使用backticks。但是请注意,
$current
仍然不应该假设它是一个整数字段

$data=$db->query("SELECT `$txt`, `$title` FROM pages WHERE `id` = $current");

为了澄清这一点,当您单引号引用字段时,实际上是在向数据库请求常量字符串。这就像说“给我一份数据库中每一行的字符串$title副本”@Robert Martin,很好的补充说明,我已经把它添加到了我的答案中。
$data=$db->query(“从页面中选择n.name,p.$txt,p.$title作为p,nav作为n,其中
id
=$current”)这个代码有什么问题?一次只做一件事,朋友。如果您正在进一步深入兔子洞,您应该发布另一个问题(从您的新查询中可以看出)。为了澄清这一点,当您单引号引用字段时,实际上是在向数据库询问常量字符串。这就像说“给我一份数据库中每一行的字符串$title副本”@Robert Martin,很好的补充说明,我已经把它添加到了我的答案中。
$data=$db->query(“从页面中选择n.name,p.$txt,p.$title作为p,nav作为n,其中
id
=$current”)这个代码有什么问题?一次只做一件事,朋友。如果你在兔子洞里越走越远,你应该发布另一个问题(从你的新查询中可以看出)。