Codeigniter活动记录错误?查询构建器添加了一行

时间:2017-01-08 11:32:22

标签: php mysql database codeigniter activerecord

我认为我的codeigniter(版本3.1.2)活动记录存在问题...

我的模特功能是:

country

当我运行它时,我收到此错误:

发生数据库错误

错误号码:1064

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在第1行'* FROM ID WHERE SELECT `ads`, * FROM `country` WHERE `ID` = '6' ='6''附近使用正确的语法

ads

文件名:models / Country_model.php

行号:40

我注意到另外一行:“SELECT country,* FROM ID WHERE "$query = $this ->db -> query ('SELECT * FROM country WHERE ID = '.$ID); " ='6'”但我不知道它在哪里。没有“广告”列。

如果我使用{{1}}则没有错误。

可能是什么问题?

2 个答案:

答案 0 :(得分:0)

试试这样....

function select_country($ID, $typec)
{
    $data = '';

    $this ->db ->select ('*');
    $this->db->from('country');
    $this ->db ->where ('ID', $ID);
    $query = $this->db->get();

    if ($query->num_rows()>0){
    $row = $query->row();//only on row on result so no need to use `result()`
    $data = $row->$typec 
    }   

    return $data;

}

更简单的查询:

$query = $this->db->get_where('country', array('ID' => $ID));

答案 1 :(得分:0)

我不知道您是否仍在寻找答案,但请确保在开始新的DB查询后不要调用select_country()函数。

基本上像这样的 MAY 会导致这个错误:

// Start new query using the Query-Builder 
$this->db->select('*')->from('something');

// Get some additional data
$countries = $this->your_model->select_countries($your_id, $some_type);

// Execute the query
$query = $this->db->where_in('country_id', $countries)->get();

如果您执行此类操作,请在开始新查询之前尝试调用select_countries() - 函数:

// FIRST: Get some additional data
$countries = $this->your_model->select_countries($your_id, $some_type);

// Start new query using the Query-Builder 
$this->db->select('*')->from('something');

// Execute the query
$query = $this->db->where_in('country_id', $countries)->get();