【问题标题】:Insert into database-Moodle插入数据库-Moodle
【发布时间】:2015-06-29 17:13:44
【问题描述】:

我正在尝试将数据插入数据库,但即使该表存在于数据库中,我也会收到此错误。

错误信息

表“教师”不存在

有关此错误的更多信息

调试信息: 错误代码:ddltablenotexist 堆栈跟踪: \lib\dml\mysqli_native_moodle_database.php 的第 1194 行:抛出 dml_exception \local\try\process.php 的第 19 行:调用 mysqli_native_moodle_database->insert_record()

代码

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

global $DB;

$name = optional_param('name', null, PARAM_TEXT);
$uni_id = optional_param('university_id', null, PARAM_TEXT);

$record1 = new stdClass();
$record1->name  = $name;
$record1->displayorder = '10000';

$record2 = new stdClass();
$record2->name = $uni_id;
$record2->displayorder = '10000';

// Insert one record at a time.
$lastinsertid1 = $DB->insert_record('faculty', $record1);
$lastinsertid2 = $DB->insert_record('faculty', $record2);

?>

知道为什么我会得到这个吗?谢谢。

【问题讨论】:

  • 我注意到您将当前目录称为dirname(dirname(dirname(__FILE__))) 并选择了我的兴趣。所以我想问你这样做吗?

标签: php database moodle


【解决方案1】:

假设您的站点 $CFG->prefix 设置为“mdl_”(默认值),您是否仔细检查过您的数据库中是否存在表“mdl_faculty”?

【讨论】:

  • 我没有添加任何前缀。很奇怪,它说该表不存在,而它显然存在。
  • 但是数据库中的表是叫mdl_faculty还是叫faculty?如果它被称为 Faculty(没有标准前缀),那么 Moodle 数据库函数将找不到它。前缀的存在是为了让数据库可以与其他应用程序共享,而不会出现表名冲突,因此所有表都需要前缀(并且您应该使用 xmldb 功能来创建它们)。
  • 我可以解决它。问题出在 config.php 中。数据库名称错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多