diff --git a/include/class.orm.php b/include/class.orm.php
index 2d4938d9586adb239f5ba043b9395e75b68b867d..c71f0e1e60f4e8e5e0aac99a8bfca98d89fcba8b 100644
--- a/include/class.orm.php
+++ b/include/class.orm.php
@@ -2603,7 +2603,7 @@ class MySqlCompiler extends SqlCompiler {
         $exec = $q->getQuery(array('nosort' => true));
         $exec->sql = 'SELECT COUNT(*) FROM ('.$exec->sql.') __';
         $row = $exec->getRow();
-        return $row ? $row[0] : null;
+        return is_array($row) ? (int) $row[0] : null;
     }
 
     function compileSelect($queryset) {
@@ -3064,13 +3064,18 @@ class MySqlPreparedExecutor {
         return preg_replace_callback("/:(\d+)(?=([^']*'[^']*')*[^']*$)/",
         function($m) use ($self) {
             $p = $self->params[$m[1]-1];
-            if ($p instanceof DateTime) {
+            switch (true) {
+            case is_bool($p):
+                $p = (int) $p;
+            case is_int($p):
+            case is_float($p):
+                return $p;
+
+            case $p instanceof DateTime:
                 $p = $p->format('Y-m-d H:i:s');
+            default:
+                return db_real_escape($p, true);
             }
-            elseif ($p === false) {
-                $p = 0;
-            }
-            return db_real_escape($p, is_string($p));
         }, $this->sql);
     }
 }