используя массив в состоянии где - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть массив данных с именем $req_dep. Вот как это выглядит, когда я var_dump() это.

array(2) { [0]=> int(41) [1]=> int(765) }

Я хочу использовать эти данные в запросе

  select * from dbo.RequisitionTable 
  where RequestorID = '$ID'
  and RequestorDepartmentID in ($req_dep)
  and IsProcessedToHire=0 
  and IsHold = 0
  and IsRejected = 0

Но всегда получаю ошибку "Array to string conversion". Как использовать массив в таких условиях?

Спасибо

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Ваш запрос:

select * from dbo.RequisitionTable 
where RequestorID = '$ID'
and RequestorDepartmentID in ($req_dep)
and IsProcessedToHire=0 
and IsHold = 0
and IsRejected = 0

Может быть легко преобразован в конструктор запросов CodeIgniter следующим образом:

$this->db->select('*');
$this->db->from('dbo.RequisitionTable');
$this->db->where('RequestorID', $ID);
$this->db->where_in('RequestorDepartmentID', $req_dep);
$this->db->where('IsProcessedToHire', 0);
$this->db->where('IsHold', 0);
$this->db->where('IsRejected', 0);

Выше предполагается, что $ ID и $ req_dep передаются в модель и что последний является массивом

0 голосов
/ 01 апреля 2020

Почему вы не используете Класс построителя запросов ? Вы можете сделать это,

$conds = [
   "RequestorID" => $ID,
   "IsProcessedToHire" => 0,
   "IsHold" => 0,
   "IsRejected" => 0  
];

$result = $this->db->where($conds)->where_in("RequestorDepartmentID", $req_dep)->get("RequisitionTable")->result_array();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...