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

クエリを使用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 に答える
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 に答える