在moodle中添加几条记录

时间:2016-05-12 06:13:32

标签: moodle

我在moodle中添加项目时遇到了麻烦,这是我尝试过的,但没有成功。

$totalrec = array();
$rec2 = $DB->get_records('table1', null, '', '*', 0, 0);
$rec4 = $DB->get_records('table2', array('x' => 'y') , '', '*', 0, 0);

foreach ($rec2 as $records2) {
    $rec3 = $DB->get_records('z', array('m' => 'n') , '', '*', 0, 0);
    foreach ($rec3 as $records3) {
        if (isset($_REQUEST['a']) && isset($_REQUEST['b'])) {
            $ca = $_REQUEST['a'];
            $co = $_REQUEST['b'];
            $pi = $records2->idp;
            $recorsh = new class ();

            $recorsh->id = $records2->id;
            $recorsh->te = $co;
            $recorsh->idt = $ti;
            $recorsh->res = $ca;
            $recorsh->ida = $idaud;
            $totalrec[$n] = array($recorsh);
            $n++;
        }
    }
}

$lastinsertid2 = $DB->insert_records('table4', $totalrec);

,这一个:

$rec2 = $DB->get_records('table1', null, '', '*', 0, 0);
$rec4 = $DB->get_records('table2', array('x' => 'y') , '', '*', 0, 0);

foreach($rec2 as $records2) {
    $rec3 = $DB->get_records('z', array('m' => 'n') , '', '*', 0, 0);
    foreach($rec3 as $records3) {
        if (isset($_REQUEST['a']) && isset($_REQUEST['b'])) {
            $ca = $_REQUEST['a'];
            $co = $_REQUEST['b'];
            $pi = $records2->idp;
            $recorsh = new class ();

            $recorsh->id = $records2->id;
            $recorsh->te = $co;
            $recorsh->idt = $ti;
            $recorsh->res = $ca;
            $recorsh->ida = $idaud;
            $lastinsertid = $DB->insert_record('table4', $recorsh, false);
        }
    }
}

他们两个都给我一个“写入数据库的错误”,但没有说明具体的内容,我知道我没有“以正确的方式”插入,但我不知道该怎么做,我做错了什么?

1 个答案:

答案 0 :(得分:1)

这可能是因为在插入之前将ID添加到每个对象。

$recorsh->id = $records2->id;

就像davosmith所说,在开发期间总是将调试设置为开发人员级别。

在你的config.php中有这个

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 0);

$CFG->debug = E_ALL | E_STRICT; // 32767;
$CFG->debugdisplay = true;

也永远不要直接使用$ _REQUEST或$ _GET或$ _POST。这可以引入SQL注入。

使用

$a = optional_param('a', null, PARAM_XXX);
$b = optional_param('b', null, PARAM_XXX);

$a = required_param('a', PARAM_XXX);
$b = required_param('b', PARAM_XXX);

将PARAM_XXX更改为您期望的参数类型。例如PARAM_INTPARAM_BOOL等。