Произошла ошибка базы данных. Номер ошибки: 1054 Неизвестный столбец "Массив" в предложении where

Я не могу получить значение $ list_izin из массива, как я могу получить значение из массива и установить значение для условия предложения where

$ list_izin = ['7', '11', '14', '16', '19', '202', '139', '157'];

$where = array(
    'tmuser_userauth.userauth_id' => $userauth_id,
    'tmpegawai.bidangid' => $bidangid,
    'trperizinan_user.trperizinan_id' => $list_izin
    );
    }
    return $this->db
            ->select('
                tmpegawai.pegawaiid,
                tmpegawai.n_pegawai,
                tmpegawai.telp,
                tmuser.photo,
                tmuser.last_login,
                trperizinan_user.trperizinan_id

            ')
            ->from($this->table)
            ->join('tmuser', 'tmuser.tmpegawai_id = tmpegawai.pegawaiid')
            ->join('tmuser_userauth','tmuser_userauth.tmuser_id = tmuser.id')
            ->join('trperizinan_user','trperizinan_user.user_id = tmuser.id')
            ->where($where)
            ->get();
}

Используйте where_in() или or_where_in().

AbraCadaver 14.01.2019 22:13

Извините, я только что понял, что дубликат применим только частично

Don't Panic 14.01.2019 22:25
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
331
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы видите ошибку «неизвестный столбец« Массив »», потому что массив идентификаторов преобразуется в строку, когда это значение ассоциативного массива обрабатывается where(). («Массив» - это строковое представление любого массива в PHP.)

Чтобы исправить это, сначала удалите последний столбец из массива $where.

$where = array(
    'tmuser_userauth.userauth_id' => $userauth_id,
    'tmpegawai.bidangid' => $bidangid,
);

Затем в выбранном запросе добавьте список идентификаторов в условии where_in().

return $this->db
    ->select('
        tmpegawai.pegawaiid,
        tmpegawai.n_pegawai,
        tmpegawai.telp,
        tmuser.photo,
        tmuser.last_login,
        trperizinan_user.trperizinan_id

    ')
    ->from($this->table)
    ->join('tmuser', 'tmuser.tmpegawai_id = tmpegawai.pegawaiid')
    ->join('tmuser_userauth','tmuser_userauth.tmuser_id = tmuser.id')
    ->join('trperizinan_user','trperizinan_user.user_id = tmuser.id')
    ->where($where)
    ->where_in('trperizinan_user.trperizinan_id', $list_izin)
    ->get();

where_in() будет добавлен к существующим критериям, определенным в where(), он не заменит его.

Другие вопросы по теме