Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Duplicate
-
2.0
-
None
-
None
-
MySQL
-
MOODLE_20_STABLE
-
Easy
Description
DML error if you use same param twice in a query for $DB->get_records_sql, $DB->get_record_sql, $DB->get_field_sql
example:
$sql = 'SELECT * FROM
{user} as user where user.id = :id and user.id = :id';$param['id'] = $id;
$DB->get_records_sql($sql,$params);
causes
Fatal error: Uncaught exception 'dml_exception' with message '[[invalidqueryparam]]' in ...\moodle\lib\dml\moodle_database.php:651 Stack trace: #0 ...\moodle\lib\dml\mysqli_native_moodle_database.php(651): moodle_database->fix_sql_params('SELECT * FROM {...', Array)
Can be solved only in very ugly way now:
$sql = 'SELECT * FROM {user}
as user where user.id = :id and user.id = :id2';
$param['id'] = $id;
$param['id2'] = $id;
$DB->get_records_sql($sql,$params);
Attachments
Issue Links
- duplicates
-
MDL-15839 Named parameters must accept repetitions
-
- Closed
-