mtrace('Removing expired enrolments ...', ''); // See MDL-8785
$timenow = time();
$somefound = false;
- // The preferred way saves memory, dmllib.php
+ // The preferred way saves memory, datablib
// find courses where limited enrolment is enabled
$sql = "SELECT ra.roleid, ra.userid, ra.contextid
FROM {course} c
// Create the group of tests.
$test = new AutoGroupTest(false, true);
- $test->addTestFile($CFG->libdir.'/dml/simpletest/testdmllib.php');
- $test->addTestFile($CFG->libdir.'/ddl/simpletest/testddllib.php');
+ $test->addTestFile($CFG->libdir.'/dml/simpletest/testdml.php');
+ $test->addTestFile($CFG->libdir.'/ddl/simpletest/testddl.php');
// Make the reporter, which is what displays the results.
$reporter = new ExHtmlReporter($showpasses);
// Add ddl and dml tests if requested
if ($rundbtests) {
if (!strstr($path, $CFG->libdir . '/ddl')) {
- $test->addTestFile($CFG->libdir . '/ddl/simpletest/testddllib.php');
+ $test->addTestFile($CFG->libdir . '/ddl/simpletest/testddl.php');
}
if (!strstr($path, $CFG->libdir . '/dml')) {
- $test->addTestFile($CFG->libdir . '/dml/simpletest/testdmllib.php');
+ $test->addTestFile($CFG->libdir . '/dml/simpletest/testdml.php');
}
}
require_once($CFG->libdir.'/setuplib.php');
require_once($CFG->libdir.'/weblib.php');
-require_once($CFG->libdir.'/dmllib.php');
require_once($CFG->libdir.'/deprecatedlib.php');
require_once($CFG->libdir.'/moodlelib.php');
require_once($CFG->libdir.'/adminlib.php');
* @package moodlecore
*/
+/**
+ * Sets up global $DB moodle_database instance
+ * @return void
+ */
+function setup_DB() {
+ global $CFG, $DB;
+
+ if (isset($DB)) {
+ return;
+ }
+
+ if (!isset($CFG->dbuser)) {
+ $CFG->dbuser = '';
+ }
+
+ if (!isset($CFG->dbpass)) {
+ $CFG->dbpass = '';
+ }
+
+ if (!isset($CFG->dbname)) {
+ $CFG->dbname = '';
+ }
+
+ if (!isset($CFG->dbpersist)) {
+ $CFG->dbpersist = false;
+ }
+
+ if (!isset($CFG->dblibrary)) {
+ $CFG->dblibrary = 'adodb';
+ }
+
+ if (!isset($CFG->dboptions)) {
+ $CFG->dboptions = array();
+ }
+
+ if ($CFG->dblibrary == 'adodb') {
+ $classname = $CFG->dbtype.'_adodb_moodle_database';
+ require_once($CFG->libdir.'/dml/'.$classname.'.php');
+ $DB = new $classname();
+
+ } else {
+ error('Not implemented db library yet: '.$CFG->dblibrary);
+ }
+
+ $CFG->dbfamily = $DB->get_dbfamily(); // TODO: BC only for now
+
+ $driverstatus = $DB->driver_installed();
+
+ if ($driverstatus !== true) {
+ print_error('dbdriverproblem', 'error', '', $driverstatus);
+ }
+
+ if (debugging('', DEBUG_ALL)) {
+ // catch errors
+ ob_start();
+ } else {
+ $prevdebug = error_reporting(0);
+ }
+ if (!$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->dbpersist, $CFG->prefix, $CFG->dboptions)) {
+ if (debugging('', DEBUG_ALL)) {
+ if ($dberr = ob_get_contents()) {
+ $dberr = '<p><em>'.$dberr.'</em></p>';
+ }
+ ob_end_clean();
+ } else {
+ $dberr = '';
+ }
+ if (empty($CFG->noemailever) and !empty($CFG->emailconnectionerrorsto)) {
+ @mail($CFG->emailconnectionerrorsto,
+ 'WARNING: Database connection error: '.$CFG->wwwroot,
+ 'Connection error: '.$CFG->wwwroot);
+ }
+ print_error('dbconnectionfailed', 'error', '', $dberr);
+ }
+ if (debugging('', DEBUG_ALL)) {
+ ob_end_clean();
+ } else {
+ error_reporting($prevdebug);
+ }
+
+ return true;
+}
+
/// Some constants
define('LASTACCESS_UPDATE_SECS', 60); /// Number of seconds to wait before
/// updating lastaccess information in DB.
/**
* Store user last access times - called when use enters a course or site
*
- * Note: we use ADOdb code directly in this function to save some CPU
- * cycles here and there. They are simple operations not needing any
- * of the postprocessing performed by dmllib.php
- *
* @param int $courseid, empty means site
* @return void
*/
require_once($CFG->libdir . '/adminlib.php');
-class ddllib_test extends UnitTestCase {
+class ddl_test extends UnitTestCase {
private $tables = array();
private $tdb;
/**
* Abstract moodle database class
- * @package dmlib
+ * @package dml
*/
abstract class adodb_moodle_database extends moodle_database {
/**
* Adodb basic moodle recordset class
- * @package dmlib
+ * @package dml
*/
class adodb_moodle_recordset extends moodle_recordset {
require_once($CFG->libdir.'/dml/database_column_info.php');
+/// GLOBAL CONSTANTS /////////////////////////////////////////////////////////
+
+/**
+ * Bitmask, indicates only :name type parameters are supported by db backend.
+ */
+define('SQL_PARAMS_NAMED', 1);
+
+/**
+ * Bitmask, indicates only ? type parameters are supported by db backend.
+ */
+define('SQL_PARAMS_QM', 2);
+
+/**
+ * Bitmask, indicates only $1, $2.. type parameters are supported by db backend.
+ */
+define('SQL_PARAMS_DOLLAR', 4);
+
/**
* Abstract class representing moodle database interface.
- * @package dmlib
+ * @package dml
*/
abstract class moodle_database {
/**
* MSSQL database class using adodb backend
- * @package dmlib
+ * @package dml
*/
class mssql_adodb_moodle_database extends adodb_moodle_database {
/**
/**
* MSSQL_N database class using adodb backend
- * @package dmlib
+ * @package dml
*/
class mssql_n_adodb_moodle_database extends mssql_adodb_moodle_database {
/**
* Legacy MySQL database class using adodb backend
- * @package dmlib
+ * @package dml
*/
class mysql_adodb_moodle_database extends mysqli_adodb_moodle_database {
/**
* Recommended MySQL database class using adodb backend
- * @package dmlib
+ * @package dml
*/
class mysqli_adodb_moodle_database extends adodb_moodle_database {
/**
* Oracle database class using adodb backend
- * @package dmlib
+ * @package dml
*/
class oci8po_adodb_moodle_database extends adodb_moodle_database {
/**
* Oracle moodle recordest with special hacks
- * @package dmlib
+ * @package dml
*/
class oci8po_adodb_moodle_recordset extends adodb_moodle_recordset {
/**
* Experimenta mssql odbc database class using adodb backend
- * @package dmlib
+ * @package dml
*/
class odbc_mssql_adodb_moodle_database extends mssql_adodb_moodle_database {
/**
* Experimental pdo database class
- * @package dmlib
+ * @package dml
*/
abstract class pdo_moodle_database extends moodle_database {
/**
* Experimental pdo recordset
- * @package dmlib
+ * @package dml
*/
class pdo_moodle_recordset extends moodle_recordset {
/**
* Postgresql database class using adodb backend
- * @package dmlib
+ * @package dml
*/
class postgres7_adodb_moodle_database extends adodb_moodle_database {
<?php
/**
- * Unit tests for dmllib
- * @package dmllib
+ * Unit tests for dml
+ * @package dml
*/
if (!defined('MOODLE_INTERNAL')) {
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
}
-class dmllib_test extends UnitTestCase {
+class dml_test extends UnitTestCase {
private $tables = array();
private $tdb;
/// http://docs.moodle.org/en/DML_functions
/// (feel free to modify, improve and document such page, thanks!)
-/// GLOBAL CONSTANTS /////////////////////////////////////////////////////////
-
-/**
- * Bitmask, indicates only :name type parameters are supported by db backend.
- */
-define('SQL_PARAMS_NAMED', 1);
-
-/**
- * Bitmask, indicates only ? type parameters are supported by db backend.
- */
-define('SQL_PARAMS_QM', 2);
-
-/**
- * Bitmask, indicates only $1, $2.. type parameters are supported by db backend.
- */
-define('SQL_PARAMS_DOLLAR', 4);
-
-
-/**
- * Sets up global $DB moodle_database instance
- * @return void
- */
-function setup_DB() {
- global $CFG, $DB;
-
- if (isset($DB)) {
- return;
- }
-
- if (!isset($CFG->dbuser)) {
- $CFG->dbuser = '';
- }
-
- if (!isset($CFG->dbpass)) {
- $CFG->dbpass = '';
- }
-
- if (!isset($CFG->dbname)) {
- $CFG->dbname = '';
- }
-
- if (!isset($CFG->dbpersist)) {
- $CFG->dbpersist = false;
- }
-
- if (!isset($CFG->dblibrary)) {
- $CFG->dblibrary = 'adodb';
- }
-
- if (!isset($CFG->dboptions)) {
- $CFG->dboptions = array();
- }
-
- if ($CFG->dblibrary == 'adodb') {
- $classname = $CFG->dbtype.'_adodb_moodle_database';
- require_once($CFG->libdir.'/dml/'.$classname.'.php');
- $DB = new $classname();
-
- } else {
- error('Not implemented db library yet: '.$CFG->dblibrary);
- }
-
- $CFG->dbfamily = $DB->get_dbfamily(); // TODO: BC only for now
-
- $driverstatus = $DB->driver_installed();
-
- if ($driverstatus !== true) {
- print_error('dbdriverproblem', 'error', '', $driverstatus);
- }
-
- if (debugging('', DEBUG_ALL)) {
- // catch errors
- ob_start();
- } else {
- $prevdebug = error_reporting(0);
- }
- if (!$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->dbpersist, $CFG->prefix, $CFG->dboptions)) {
- if (debugging('', DEBUG_ALL)) {
- if ($dberr = ob_get_contents()) {
- $dberr = '<p><em>'.$dberr.'</em></p>';
- }
- ob_end_clean();
- } else {
- $dberr = '';
- }
- if (empty($CFG->noemailever) and !empty($CFG->emailconnectionerrorsto)) {
- @mail($CFG->emailconnectionerrorsto,
- 'WARNING: Database connection error: '.$CFG->wwwroot,
- 'Connection error: '.$CFG->wwwroot);
- }
- print_error('dbconnectionfailed', 'error', '', $dberr);
- }
- if (debugging('', DEBUG_ALL)) {
- ob_end_clean();
- } else {
- error_reporting($prevdebug);
- }
-
- return true;
-}
-
/// Load up standard libraries
require_once($CFG->libdir .'/textlib.class.php'); // Functions to handle multibyte strings
require_once($CFG->libdir .'/weblib.php'); // Functions for producing HTML
- require_once($CFG->libdir .'/dmllib.php'); // Functions to handle DB data (DML)
require_once($CFG->libdir .'/datalib.php'); // Legacy lib with a big-mix of functions.
require_once($CFG->libdir .'/accesslib.php'); // Access control functions
require_once($CFG->libdir .'/deprecatedlib.php'); // Deprecated functions included for backward compatibility