From 7aa9e45f56d74d9424baa3dde444870610cd1f90 Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Thu, 5 May 2011 17:42:41 +0200 Subject: [PATCH] MDL-27325 mysql: Avoid some implicit casting from float to varchar/text --- lib/dml/mysqli_native_moodle_database.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/dml/mysqli_native_moodle_database.php b/lib/dml/mysqli_native_moodle_database.php index b3c1cebdde0..243f29dbeb6 100644 --- a/lib/dml/mysqli_native_moodle_database.php +++ b/lib/dml/mysqli_native_moodle_database.php @@ -579,6 +579,10 @@ class mysqli_native_moodle_database extends moodle_database { if ($column->meta_type == 'I' or $column->meta_type == 'F' or $column->meta_type == 'N') { $value = 0; // prevent '' problems in numeric fields } + // Any float value being stored in varchar or text field is converted to string to avoid + // any implicit conversion by MySQL + } else if (is_float($value) and ($column->meta_type == 'C' or $column->meta_type == 'X')) { + $value = "$value"; } // workaround for problem with wrong enums in mysql - TODO: Out in Moodle 2.1 if (!empty($column->enums)) {