Пример #1
0
 /**
  * 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);
     }
 }