从PHP函数获取数组

Tur*_*Ali 1 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(MYSQLI_BOTH);
    return $data;
}
Run Code Online (Sandbox Code Playgroud)

然后在索引页面的开头获取数组值

$data=page($id, $lang);

并使用这个例子

<title><?=$data[1]?></title>
Run Code Online (Sandbox Code Playgroud)

但每次都得到相同的结果title_en(en是我的语言变量.).我的代码出了什么问题?

Jas*_*ary 6

不要单引用你的字段.MySQL将其解释为字符串.

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

或者你可以在MySQL中使用反引号.但请注意,$current仍然不应该让它们假设它是一个整数字段.

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

  • 为了澄清,当您单引引字段时,实际上是在向数据库询问常量字符串.这就像说"给我一个数据库中每行的字符串$ title" (3认同)