Обновить поле поля базы данных CodeIgniter

В CodeIgniter 2.1 появляется следующее сообщение об ошибке:

A PHP Error was encountered Severity: Notice Message: Array to string conversion Filename: database/DB_active_rec.php Line Number: 1407 

Я пытаюсь обновить поля в моей базе данных. У меня есть этот код, и каждый учебник одинаковый для пакетной загрузки. Он работает в любом случае, но дело в том, что оно отображает такую ​​ошибку.

это то, что у меня есть в моей модели:

 function update2($data){ $this->db->update_batch('users',$data, "id"); } 

Это то, что у меня в контроллере:

 public function updateValues(){ $this->load->model('get_db'); $newRow = array( array( 'id' => '3', 'firstname' => 'Rapphie' ), array( 'id' => '2', 'firstname' => 'Charmie' ) ); $this->get_db->update2($newRow); echo "it has been updated"; } 

попробуйте эту надежду на его работу

 function update2($data){ foreach($data as $string_val){ $this->db->update_batch('users',$string_val, "id"); } } 

или

 function update2($data){ foreach($data as $string_val){ $this->db->update_batch('users',$string_val->first_name, "id"); } } 

Просто наткнулся на ту же самую проблему. К счастью, я использую ту же версию CI. 🙂

Это правда, что ответ от M_A_K помогает удалить «Уведомление», но я не думаю, что это правильное решение проблемы. Поэтому я решил взглянуть на строку 1407 в DB_active_rec.php, и я считаю, что это не что иное, как незначительная ошибка в CI 2.1.2.

Вот мое исправление. Я просто изменил исходный код:

 $not[] = $k.'-'.$v; 

в это:

 $not[] = $k2.'-'.$v2; 

Вуаля! «Уведомление» больше не появляется. 🙂

Мы можем ясно видеть, что строка 1407 не предназначена для использования $ k и $ v, потому что строка 1407 находится внутри цикла foreach, итерации через $ v в виде $ k2 и $ v2.

Надеюсь, я проясню ситуацию.

Просто понял, что использование foreach, такого как M_A_K, на самом деле превосходит цель использования функции update_batch. Это связано с тем, что, используя foreach, мы фактически делаем одно обновление (а не пакетное) для каждого элемента массива. Это ничем не отличается от использования (одного) обновления в CodeIgniter.

Я всегда чувствую себя немного грязным для этого, но вы всегда можете просто подавлять ошибки для этой одной строки кода!

 function update2($data){ @$this->db->update_batch('users',$data, "id"); } 

Разумеется, правильная вещь – обновить до 2.1.3 (не тестировалось или выглядело так, я предполагаю, что оно исправлено).

Правильным решением является удаление строк 1401-1404 из DB_active_rec.php, поскольку $not variable нигде не используется.