2011-09-19 96 views
1

我的数据库表看起来像从PHP函数获取阵列

enter image description here

我想在指数开始从这个函数获取网页标题和内容

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_en(EN是我的语言变量)。我的代码有什么问题?

回答

6

不要单引号您的字段。 MySQL将其解释为一个字符串。

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

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

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

oooopppsss ..谢谢你,伙计 –

+3

为了澄清,当你单引号的领域,你基本上是要求常量字符串数据库。这就像说“给我一个数据库中每一行的字符串$ title的副本” –

+0

@罗伯特马丁,很好的补充说明,我已经将它添加到我的答案中。 –