Moodle SQL更新数据库中的特定记录无法正常工作

时间:2015-07-01 20:14:24

标签: php sql database moodle

我有一个用户可以添加课程的表单,当用户点击编辑按钮时,他会被重定向到另一个页面,以便修改表单中的数据。但是当用户单击“保存”按钮时,没有任何反应。出现一个空白页面。在正常情况下,“成功”需要出现在页面上。

处理更新查询的代码:

<?php

require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');

global $DB;

$id = required_param('facid', PARAM_TEXT);
$name = required_param('name', PARAM_TEXT);
$course_detail = required_param('course_detail', PARAM_TEXT);
$course_outline = required_param('course_outline', PARAM_TEXT);
$course_obj = required_param('course_obj', PARAM_TEXT);
//$programme = required_param('programme', PARAM_TEXT);

$update = $DB->execute_sql("UPDATE {courses} SET name = '$name' AND course_detail = '$course_detail' WHERE id = '$id'");

if(!$update)
{
    echo "Could not update";
}

else
{
    echo "Successful";
}

?>

我可以理解SQL语句是错误的,但我似乎无法修复它,因为它与我学到的PHP代码完全不同。我也试过检查这个link,但似乎找不到答案。我是Moodle的新手。 你有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

我知道为时已晚,但将来可能会对某些人有所帮助,因此请发布答案,

根据 Moodle docs 下面是更新记录的代码,而 $dataobjec 是关联数组。 $dataobject 必须有一个 id 字段才能更新记录

$DB->update_record($table, $dataobject, $bulk=false)

 $dataobject= array(
   'id'             => $_POST['id'],
    'value2'        => $_POST['value2'],
    'value2'        => $_POST['value3']
 );
        

答案 1 :(得分:0)

我终于可以解决它,所以我想为未来的新Moodle开发者发布答案。

<强>代码:

<?php

require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');

global $DB;

$id = required_param('facid', PARAM_TEXT);
$name = required_param('name', PARAM_TEXT);
$course_detail = required_param('course_detail', PARAM_TEXT);
$course_outline = required_param('course_outline', PARAM_TEXT);
$course_obj = required_param('course_obj', PARAM_TEXT);
//$programme = required_param('programme', PARAM_TEXT);

$record = new stdclass;
$record->id = $id;
$record->name = $name;
$record->course_detail = $course_detail;
$record->course_outline = $course_outline;
$record->course_obj = $course_obj;


$sql = $DB->update_record('courses', $record); 


if(!$sql)
{
    echo "Could not update";
}

else
{
    echo "Successful";
}

?>