From fdeb3e1f3b2bf6b8524a42c70a57900b768552d6 Mon Sep 17 00:00:00 2001 From: Aparup Banerjee Date: Thu, 16 Sep 2010 02:56:26 +0000 Subject: [PATCH] data MDL-24131 fixed numeric field names throwing db error. numeric field names are not good for DB->sql_like() --- mod/data/lib.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mod/data/lib.php b/mod/data/lib.php index 907fdc84b9b..22952771e99 100755 --- a/mod/data/lib.php +++ b/mod/data/lib.php @@ -1646,13 +1646,18 @@ function data_get_post_actions() { function data_fieldname_exists($name, $dataid, $fieldid=0) { global $CFG, $DB; + if(!is_numeric($name)) { + $like = $DB->sql_like('df.name', $name, false); + } else { + $like = "df.name = $name"; + } if ($fieldid) { return $DB->record_exists_sql("SELECT * FROM {data_fields} df - WHERE ".$DB->sql_like('df.name', '?', false)." AND df.dataid = ? - AND ((df.id < ?) OR (df.id > ?))", array($name, $dataid, $fieldid, $fieldid)); + WHERE ".$like." AND df.dataid = ? + AND ((df.id < ?) OR (df.id > ?))", array($dataid, $fieldid, $fieldid)); } else { return $DB->record_exists_sql("SELECT * FROM {data_fields} df - WHERE ".$DB->sql_like('df.name', '?', false)." AND df.dataid = ?", array($name, $dataid)); + WHERE ".$like." AND df.dataid = ?", array($dataid)); } }