Запрос в php на Codeigniter - PullRequest
0 голосов
/ 26 марта 2019

Я не могу использовать свой запрос в php, когда использую codeigniter. Я думаю, что все в порядке, но мой код не работает. Что это не так?

Мне нужно указать два параметра.

У меня есть стол, и мне нужно colonn3

Модели:

    function get_colonn3($data){
        $this->db->select("table.colonn3");
        $this->db->where("table.colonn3",$data);
        return $this->db->get("table.colonn3")->result_array();

Контроллер:

$colonn3_exsist = $this->my_model->get_colonn3($data)

if($colonn3_exsist):
echo "ok";
endif;

Ответы [ 5 ]

0 голосов
/ 27 марта 2019

Модель

 function get_colonn3($data){
   return $this->db->select("table.colonn3 as col3")->from('table')->where(['table.colonn3' => $data])->get()->row()->col3;
}

Контроллер

$colonn3 = $this->my_model->get_colonn3($data)

if(!empty($colonn3)):
  echo "ok"; 
endif;
0 голосов
/ 27 марта 2019

Вы передаете значение в WHERE неправильно. Вы должны передать значения в массиве, не передавая имя таблицы.

Вы должны передать массив в предложении WHERE следующим образом, если у вас есть несколько параметров для сравнения из базы данных:

function get_colonn3($para1,$para2){
  $this->db->select("table.colonn3");
  $this->db->where(['columnname1' => $para1, 'columnname2' => $para2]);
  return $this->db->get("table.colonn3")->result_array();
}

Если у вас есть только один параметр для сравнения, вы можете использовать это:

function get_colonn3($para1){
      $this->db->select("table.colonn3");
      $this->db->where('columnname1',$para1);
      return $this->db->get("table.colonn3")->result_array();
    }
0 голосов
/ 26 марта 2019

Я полагаю, это потому, что вы передаете имя таблицы оператору where, а он ожидает столбец.

CodeIgniter где документация

function get_colonn3($data) {
    $this->db->select("table.colonn3");

    $this->db->where("colonn3", $data);

    return $this->db->get("table")->result_array();
}

Они также позволяют передавать массив в параметры where:

function get_colonn3($data) {
    $this->db->select("table.colonn3");

    $this->db->where([
        "colonn3" => $data
    ]);

    return $this->db->get("table")->result_array();
}

CI также позволяет вам связывать функции БД следующим образом:

function get_colonn3($data) {
    $this->db->select("table.colonn3")
        ->where([
            "colonn3" => $data
        ]);

    return $this->db->get("table")->result_array();
}
0 голосов
/ 27 марта 2019

попробуйте это:

// модель

function get_colonn3($data){
        $this->db->select("colonn3");
        $this->db->where("colonn3",$data);
 return $this->db->get("table")->result_array();

// контроллер

$colonn3_exsist = $this->my_model->get_colonn3($data)
if($colonn3_exsist>0){
echo"ok";
}
0 голосов
/ 26 марта 2019

Удалите table.colon3 из get (), возможно, это будет работать

return $this->db->get()->result_array();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...