【问题标题】:Moodle SQL to update particular record in database not workingMoodle SQL更新数据库中的特定记录不起作用
【发布时间】:2023-03-12 08:35:02
【问题描述】:

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

处理更新查询的代码:

<?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 的新手。
请帮忙?

【问题讨论】:

    标签: php sql database moodle


    【解决方案1】:

    我知道它已经晚了,但将来可能会对某些人有所帮助,所以发布答案,

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

    $DB->update_record($table, $dataobject, $bulk=false)
    
     $dataobject= array(
       'id'             => $_POST['id'],
        'value2'        => $_POST['value2'],
        'value2'        => $_POST['value3']
     );
            
    

    【讨论】:

      【解决方案2】:

      我终于可以解决它了,所以我想把答案发布给未来的新 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";
      }
      
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-31
        • 2016-03-14
        • 2021-04-06
        • 1970-01-01
        • 2015-01-26
        相关资源
        最近更新 更多