3 回答

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
我認(rèn)為你應(yīng)該在循環(huán)時(shí)提及數(shù)組的索引。并且你$x必須從0
$bookingIds; // contaning two values 176,190
$counts = count($bookingIds); // counting array values
for ($x = 0; $x < $counts; $x++)
{
$data = array('approved' => "1");
$this->db->where('bookingId', $bookingIds[$x]);
$this->db->update('notifications', $data);
}

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
使用 foreach 來(lái)重構(gòu)上述內(nèi)容以消除整個(gè)索引問(wèn)題將是
$data = array('approved' => "1");
foreach ($bookingsIds as $bookingId )
{
$this->db->where('bookingId', $bookingId);
$this->db->update('notifications', $data);
}

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
看起來(lái)你正在使用一個(gè)框架;如果它提供了一個(gè)whereIn()
方法,使用它會(huì)更有效(運(yùn)行更少的 SQL 查詢(xún)):
$data = ['approved' => '1'];$this->db ->whereIn('bookingId', $bookingIds) ->update('notifications', $data);
(請(qǐng)注意,您不能將數(shù)千個(gè)值放入這樣的“where in”子句中,因?yàn)椴樵?xún)會(huì)很大。就我個(gè)人而言,我會(huì)分塊處理此類(lèi)內(nèi)容,例如每個(gè)查詢(xún) 500 條記錄。)
(另外,如果“where in”數(shù)組(此處為 )為空,請(qǐng)確保不會(huì)發(fā)生錯(cuò)誤$bookingIds
。這是一種特殊情況,框架必須正確處理。)
- 3 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報(bào)