Codeigniter - сгенерированный имплозой запрос возвращает «неизвестный столбец» - PullRequest
1 голос
/ 10 октября 2019

В настоящее время я пытаюсь написать запрос в codeigniter, у меня проблема с включением и имплозией внутри запроса. Это мой код.

$permitedCodeList = ["ELEC-22", "ELEC-100", "ELEC-200", "999873"];

$query = $this->inventario_db->query("
    SELECT *
    FROM pt_inv_num_id_equipo
    WHERE numID = '123456789' AND codigo IN ('" . implode("','", $permitedCodeList). "')
    LIMIT 1
");
$result = $query->row();

Я получаю следующее сообщение об ошибке: Unknown column 'ELEC' in 'where clause'. Я знаю, что это связано с имплозой, возвращающей данные как ELEC-22,ELEC-100,ELEC-200,999873, но, похоже, он не добавляет одну кавычку к каждому значению и не включает ее в запрос.

Любая помощь очень ценится.

1 Ответ

1 голос
/ 10 октября 2019

Было бы лучше, если бы вы могли использовать CI Query Builder У него, в частности, есть метод where_in для обработки такого сценария.

Ваш запрос может быть построен следующим образом:

        $permitedCodeList = ["ELEC-22", "ELEC-100", "ELEC-200", "999873"];

        $this->db->from('pt_inv_num_id_equipo');
        $this->db->where('numID ', 1234 );
        $this->db->where_in('codigo', $permitedCodeList );
        $result = $this->db->get()->row_array();

Вы также можете отладить последний запрос, используя код ниже

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