/** * Override the default `doquote` method to better sanitize numeric values. * * @param ADOConnection $db * @param mixed $value * @param string $type * @return mixed */ public function doquote(&$db, $value, $type) { switch ($type) { case 'L': case 'I': case 'I1': case 'I2': case 'I4': case 'I8': case 'F': case 'N': if (!is_numeric($value)) { if (is_null($value)) { return null; } if ($value === true) { return 1; } if ($value === false) { return 0; } $db->outp_throw('Numeric field type "' . $type . '" requires numeric value.', 'DOQUOTE'); return 0; } default: return parent::doquote($db, $value, $type); } }