检测到编码错误,必须由程序员修复:insert_records()传递不可遍历的对象


Coding error detected, it must be fixed by a programmer: insert_records() passed non-traversable object

我想将我的表单数据插入到moodle db,

我有 2 个表,每次 IM 尝试同时插入时都需要更新,

这是我的代码

$result = $DB->update_record('newmodule', $newmodule);
if (!$DB->get_record('newmodule1', array('course_id' => $newmodule->id))) {
  //now i need to insert data to db
//object builder 
    foreach ($newmodule as $key => $value) {
        if($key == 'time' || $key == 'audio' || $key == 'entxt' || $key == 'fatxt' || $key == 'url'){
            $new->$key = $value;
        }elseif ($key == 'id') {
            $new->course_id = $value;
        }
    }
//just trying for finding a way 
        $result = $DB->insert_records('newmodule1', $new);

    }

每次尝试插入数据时,我都会得到这个

检测到编码错误,必须由程序员修复: insert_records() 传递的不可遍历对象

如何拆分 stdclass,然后将每个部分插入数据库?

好的,

我找到了有效的解决方案,

        for ($i=0; $i <=count($newmodule->time); $i++) { 
            $new->course_id = $newmodule->id;
            $new->videourl  = $newmodule->url;
            $new->audio     = $newmodule->audio[$i];
            $new->time      = $newmodule->time[$i];
            $new->entxt     = $newmodule->entxt[$i];
            $new->fatxt     = $newmodule->fatxt[$i];
            $DB->insert_record('newmodule1', $new);
            unset($new);
        }

我所做的只是读取数组对象,然后创建新对象,然后将其提交到数据库,然后取消设置所有创建的对象,仅此而已

PS:大声笑我对我的问题持否定态度,因为 1 个人对 Moodle 一无所知!!哇!