【问题标题】:how to use insert record function in moodle如何在moodle中使用插入记录功能
【发布时间】:2015-11-02 16:23:53
【问题描述】:

我正在尝试使用moodle将记录插入我的数据库。

我使用的是 1.9.19 版本。我正在尝试以下代码:

<?php
  require_once('config.php');
  require_once('uplo.php');

  $mform = new uplo();

  $mform->display();

  if(isset($_POST['submitbutton'])){

  $name = $mform->get_data('name');
  $email = $mform->get_data('email');

  $table='mdl_tet';

  $res=insert_record($table, '$name','$email') ;

 }  
?>

但这不能正常工作。如何正确地做到这一点。

注意:为什么使用 1.9.19 意味着我的客户使用此版本,所以我无法更改版本。

【问题讨论】:

    标签: moodle moodle-api


    【解决方案1】:

    insert_record() 函数有两个参数——表的名称(不带前缀)和一个包含要插入到表中的数据的对象。

    因此,在这种情况下,您应该编写如下内容:

    $ins = (object)array('name' => $name, 'email' => $email);
    $ins->id = insert_record('tet', $ins);
    

    或者:

    $ins = new stdClass();
    $ins->name = $name;
    $ins->email = $email;
    $ins->id = insert_record('tet', $ins);
    

    (顺便说一句 - 确保你打开调试 - https://docs.moodle.org/19/en/Debugging - 它会让你的生活更轻松)。

    【讨论】:

    • 我正在尝试,但它不适合我。请你帮帮我
    • 假设您已经创建了一个名为 mdl_tet 的表,并且您的 config.php 文件中的 $CFG->prefix 设置为 'mdl_'(默认值),那么我展示的 insert_record() 代码将工作。如果它不起作用,那么(通过调试)您几乎肯定会得到有用的错误消息输出(如果没有,则查看您的 Web 服务器日志并报告您在那里找到的错误消息)。
    • 我有一个这样的错误: - 可捕获的致命错误:stdClass 类的对象无法转换为 D:\xampp\htdocs\moodle\server\moodle\lib\adodb\drivers\ 中的字符串adodb-mysql.inc.php 第 150 行
    • 这表明 $ins 至少有一个属性是一个对象 - 例如$ins->name = 新的 stdClass()。试试 var_dump($ins) (就在 insert_record 行之前,看看正在插入什么)。
    • 如果我使用 var_dump 意味着:{ ["MAX_FILE_SIZE"]=> string(9) "786432000" ["name"]=> string(2) "ra" ["email"]=> string(13) "jat@gmail.com" ["submitbutton"]=> string(12) "保存更改" } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多