1

我有一个对象,我正在尝试使用 Moodle 2.2 LMS 将其插入数据库

这是对象:

object(object)#269 (17) { ["username"]=> string(5) "missk" ["password"]=> string(16) "BydPDczdwXumhd3S" ["firstname"]=> string(6) "Khutso" ["lastname"]=> string(7) "Mosehla" ["email"]=> string(18) "mosehlak@gmail.com" ["confirmed"]=> int(1) ["lang"]=> string(2) "en" ["firstaccess"]=> int(1375184781) ["mnethostid"]=> string(1) "3" ["secret"]=> string(15) "wNGTybC3x2rPZHO" ["auth"]=> string(4) "soap" ["profile_field_saicaid"]=> string(8) "20052064" ["profile_field_prefix"]=> string(2) "Ms" ["profile_field_membertype"]=> string(3) "TEE" ["profile_field_ssocountry"]=> string(12) "South Africa" ["profile_field_ssocity"]=> string(14) "KWATHEMA EXT 2" ["profile_field_ssoregion"]=> string(5) "North" }

当我尝试使用此语法插入记录时,它失败了。

$nuser->id = $DB->insert_record('user',$nuser);

根据手册,这是正确的语法。我有全局 $CFG 和 $DB 插入失败,脚本此时停止。

4

1 回答 1

0

问题是您的 $user 对象包含不是 mdl_user 表中的字段的配置文件字段(例如“profile_field_ssocity”)。$DB->insert_record() 将插入一条记录,因此用于插入此记录的对象必须具有所有映射到记录插入的表的属性。

如果您还需要存储配置文件字段数据,则需要包含一个脚本,该脚本旨在执行此操作:

require_once $CFG->dirroot . '/user/profile/lib.php';
profile_save_data($usernew);
于 2013-07-31T16:23:39.423 回答