Maurits van der Schee 4 år sedan
förälder
incheckning
aacb9eacca
1 ändrade filer med 23 tillägg och 4 borttagningar
  1. 23
    4
      api.php

+ 23
- 4
api.php Visa fil

@@ -5166,11 +5166,17 @@ namespace Tqdev\PhpCrudApi\Database {
5166 5166
 
5167 5167
         private function convertRecordValue($conversion, $value)
5168 5168
         {
5169
-            switch ($conversion) {
5169
+            $args = explode('|', $conversion);
5170
+            $type = array_shift($args);
5171
+            switch ($type) {
5170 5172
                 case 'boolean':
5171 5173
                     return $value ? true : false;
5172 5174
                 case 'integer':
5173 5175
                     return (int) $value;
5176
+                case 'float':
5177
+                    return (float) $value;
5178
+                case 'decimal':
5179
+                    return number_format($value, $args[0], '.', '');
5174 5180
             }
5175 5181
             return $value;
5176 5182
         }
@@ -5183,6 +5189,12 @@ namespace Tqdev\PhpCrudApi\Database {
5183 5189
             if (in_array($this->driver, ['sqlsrv', 'sqlite']) && in_array($column->getType(), ['integer', 'bigint'])) {
5184 5190
                 return 'integer';
5185 5191
             }
5192
+            if (in_array($this->driver, ['sqlite', 'pgsql']) && in_array($column->getType(), ['float', 'double'])) {
5193
+                return 'float';
5194
+            }
5195
+            if (in_array($this->driver, ['sqlite']) && in_array($column->getType(), ['decimal'])) {
5196
+                return 'decimal|' . $column->getScale();
5197
+            }
5186 5198
             return 'none';
5187 5199
         }
5188 5200
 
@@ -5656,7 +5668,7 @@ namespace Tqdev\PhpCrudApi\Database {
5656 5668
                     return $column->getPk() ? ' AUTO_INCREMENT' : '';
5657 5669
                 case 'pgsql':
5658 5670
                 case 'sqlsrv':
5659
-                    return '';
5671
+                    return $column->getPk() ? ' IDENTITY(1,1)' : '';
5660 5672
                 case 'sqlite':
5661 5673
                     return $column->getPk() ? ' AUTOINCREMENT' : '';
5662 5674
             }
@@ -6024,7 +6036,7 @@ namespace Tqdev\PhpCrudApi\Database {
6024 6036
         private function query(string $sql, array $arguments): bool
6025 6037
         {
6026 6038
             $stmt = $this->pdo->prepare($sql);
6027
-            //echo "- $sql -- " . json_encode($arguments) . "\n";
6039
+            // echo "- $sql -- " . json_encode($arguments) . "\n";
6028 6040
             return $stmt->execute($arguments);
6029 6041
         }
6030 6042
     }
@@ -6377,19 +6389,26 @@ namespace Tqdev\PhpCrudApi\Database {
6377 6389
         private $fromJdbc = [
6378 6390
             'mysql' => [
6379 6391
                 'clob' => 'longtext',
6380
-                'boolean' => 'tinyint',
6392
+                'boolean' => 'tinyint(1)',
6381 6393
                 'blob' => 'longblob',
6382 6394
                 'timestamp' => 'datetime',
6383 6395
             ],
6384 6396
             'pgsql' => [
6385 6397
                 'clob' => 'text',
6386 6398
                 'blob' => 'bytea',
6399
+                'float' => 'real',
6400
+                'double' => 'double precision',
6401
+                'varbinary' => 'bytea',
6387 6402
             ],
6388 6403
             'sqlsrv' => [
6389 6404
                 'boolean' => 'bit',
6390 6405
                 'varchar' => 'nvarchar',
6391 6406
                 'clob' => 'ntext',
6392 6407
                 'blob' => 'image',
6408
+                'time' => 'time(0)',
6409
+                'timestamp' => 'datetime2(0)',
6410
+                'double' => 'float',
6411
+                'float' => 'real',
6393 6412
             ],
6394 6413
         ];
6395 6414
 

Loading…
Avbryt
Spara