0

我在 codeiginter 中运行以下查询,我想从数据库中返回数据,但我得到一个空白数组作为响应。我调试此问题的尝试表明,模型的返回值可能是问题所在。我需要一双额外的眼睛,所以如果有人可以帮助我,请告诉我。

模型

function test($term)
{

    $sql = "select description from category where title = '$term'";
    $query = $this->db->query($sql);

    return $query->result();
}

控制器

    function test()
{
    $this->load->model('test');
    $term = $this->input->post('term',TRUE);
    $rows = $this->test->test($term);
    echo json_encode($rows);
}
4

3 回答 3

0

您的代码看起来正确...尝试打印最后一个查询并检查它

控制器

function test()
{
  $this->load->model('test');
  $term = $this->input->post('term',TRUE);
  $rows = $this->test->test($term);
  echo $this->db->last_query();exit; //this gives you the last query that was made.
  echo json_encode($rows);
}

检查发布的值是否正确...您甚至可以尝试在 mysql 中运行它,看看它是否返回任何行...

于 2013-01-11T05:37:41.433 回答
0

使用echo $this->db->last_query();并让您查询并使用您的 mysql 编辑器进行尝试

于 2013-01-11T05:43:50.310 回答
0

我注意到通过运行 echo $this->db->last_query(); $term 的值有一个前导空格,导致查询返回 null。通过添加 $term = trim($term, " "); 我能够删除前导空格并获得正确的结果。

 $this->load->model('tp_model');
 $term = $this->input->post('term',TRUE);
$term = trim($term, " ");
$rows = $this->tp_model->test($term);
于 2013-01-11T17:11:05.640 回答