Moodle

M2-M3-M4 Upgrade all code using DML

Details

  • Type: Sub-task Sub-task
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Fixed
  • Affects Version/s: 2.0
  • Fix Version/s: 2.0
  • Component/s: Database SQL/XMLDB
  • Labels:
    None
  • Affected Branches:
    MOODLE_20_STABLE
  • Fixed Branches:
    MOODLE_20_STABLE

Description

Since the new DML 2.0 API is now in place, all code using the old dmllib needs to be upgraded. In essence, this means the following changes:

1. Wherever old functions are used (get_record*, get_field*, set_field, insert_record, update_record), the global $DB must be used as the object on which these functions are called (e.g. get_record_select becomes $DB->get_record_select).
2. All the functions that used to accept a list of string params in the form "param1, value1, param2, value2" now need to be given an array of key=>value pairs as a replacement for these params. Other params remain as before. Check the new API for any exceptions.
3. rs_fetch_next_record($rs) is deprecated, in favour of the simple foreach($rs as $var). Calls to rs_close() must be replaced by $rs->close();

As an example to #3, if you have the original code:

while($result = rs_fetch_next_record($rs)) { ... }
rs_close();

you would replace it with

foreach ($rs as $result) { .... }
$rs->close();

Issue Links

Activity

Hide
Petr Škoda (skodak) added a comment -

todo:
1/ remove addslashes
2/ use placeholders in SQL
3/ fix function parameters, each $sql part needs $params array

Show
Petr Škoda (skodak) added a comment - todo: 1/ remove addslashes 2/ use placeholders in SQL 3/ fix function parameters, each $sql part needs $params array
Hide
Petr Škoda (skodak) added a comment -

done, yay!

Show
Petr Škoda (skodak) added a comment - done, yay!
Hide
Petr Škoda (skodak) added a comment -

done

Show
Petr Škoda (skodak) added a comment - done

People

Vote (0)
Watch (3)

Dates

  • Created:
    Updated:
    Resolved: