Moodle无法将记录插入数据库php

时间:2013-07-30 11:53:09

标签: php mysql moodle

我有一个对象,我试图使用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 插入只是失败,脚本此时停止。

1 个答案:

答案 0 :(得分:0)

问题是你的$ user对象包含的字段字段不是mdl_user表中的字段(例如'profile_field_ssocity')。 $ DB-> insert_record()将插入单个记录,因此用于插入此对象的对象必须具有所有映射到记录所插入的表的属性。

如果您还需要存储配置文件字段数据,则需要包含一个脚本,其中包含用于执行此操作的功能:

require_once $CFG->dirroot . '/user/profile/lib.php';
profile_save_data($usernew);