2013-10-04 30 views
2

我试图运行一个函数,该函数查询最接近变量$runscore的数值mba_score的数据库表。我的功能看起来是这样的:选择最接近变量的值

public function get_player($runscore) 
{ 
    $per = $this 
      ->db 
     ->select('mba_id, abs($runscore - mba_score) as mba_rate', FALSE) 
     ->order_by('mba_rate', 'ASC') 
     ->get('nba_scores'); 
     ->limit(1); 

     if ($per->num_rows > 0) { 
      $p = $per->row_array(); 
      return $p['nba_id']; 
     } 
     return false;   
     } 

我得到的错误是:

"Error Number: 1054 

Unknown column '$runscore' in 'field list'" 

我已经试过写作和重写该段的次数并没有能够得到一个结果。

回答

2

使用双引号:

select("mba_id, abs($runscore - mba_score) as mba_rate", FALSE) 

单引号,变量$ runscore没有与它的价值代替。如果你想使用单引号,你应该使用串联:

select('mba_id, abs('.$runscore.' - mba_score) as mba_rate', FALSE) 
+1

记住逃脱'$这个 - > DB->逃生输入($ runscore)' – machineaddict

1

变化:

->select("mba_id, abs($runscore - mba_score) as mba_rate", FALSE) //use doube quote 
0

你应该用“在你的变量

->select("mba_id, abs('".$runscore."' - mba_score) as mba_rate", FALSE) 
     ->order_by('mba_rate', 'ASC') 
     ->get('nba_scores'); 
     ->limit(1);