MDL-55660 tablelib: Fetch only a single row when auto defining columns

In a very rare cases where the columns are not declared explicitly, we
want to fetch single row only without a warning raised. This seems like
a valid use case for IGNORE_MULTIPLE flag.
This commit is contained in:
David Mudrák
2016-08-22 16:34:13 +02:00
parent 3ca3cc77a2
commit 4e96165e59
+2 -1
View File
@@ -1598,7 +1598,8 @@ class table_sql extends flexible_table {
function out($pagesize, $useinitialsbar, $downloadhelpbutton='') {
global $DB;
if (!$this->columns) {
$onerow = $DB->get_record_sql("SELECT {$this->sql->fields} FROM {$this->sql->from} WHERE {$this->sql->where}", $this->sql->params);
$onerow = $DB->get_record_sql("SELECT {$this->sql->fields} FROM {$this->sql->from} WHERE {$this->sql->where}",
$this->sql->params, IGNORE_MULTIPLE);
//if columns is not set then define columns as the keys of the rows returned
//from the db.
$this->define_columns(array_keys((array)$onerow));