Example #1
0
 public static function BindVariable($value)
 {
     $bind_var = new \query\BindVariable();
     if (is_null($value)) {
         $bind_var->setType(\query\BindVariable\Type::TYPE_NULL);
     } else {
         if (is_string($value)) {
             $bind_var->setType(\query\BindVariable\Type::TYPE_BYTES);
             $bind_var->setValueBytes($value);
         } else {
             if (is_int($value)) {
                 $bind_var->setType(\query\BindVariable\Type::TYPE_INT);
                 $bind_var->setValueInt($value);
             } else {
                 if (is_float($value)) {
                     $bind_var->setType(\query\BindVariable\Type::TYPE_FLOAT);
                     $bind_var->setValueFloat($value);
                 } else {
                     if (is_object($value)) {
                         switch (get_class($value)) {
                             case 'VTUnsignedInt':
                                 $bind_var->setType(\query\BindVariable\Type::TYPE_UINT);
                                 $bind_var->setValueUint($value->value);
                                 break;
                             default:
                                 throw new VTException('Unknown bind variable class: ' . get_class($value));
                         }
                     } else {
                         if (is_array($value)) {
                             self::ListBindVariable($bind_var, $value);
                         } else {
                             throw new VTException('Unknown bind variable type.');
                         }
                     }
                 }
             }
         }
     }
     return $bind_var;
 }