| 1 |
<?php |
| 2 |
|
| 3 |
namespace Cookiez\Classes\Database; |
| 4 |
|
| 5 |
if ( ! defined( 'ABSPATH' ) ) { |
| 6 |
exit; // Exit if accessed directly |
| 7 |
} |
| 8 |
|
| 9 |
class Database_Constants { |
| 10 |
// column types |
| 11 |
const INT = 'INT'; |
| 12 |
const BIGINT = 'BIGINT'; |
| 13 |
const VARCHAR = 'VARCHAR'; |
| 14 |
const TEXT = 'TEXT'; |
| 15 |
const LONGTEXT = 'LONGTEXT'; |
| 16 |
const DATETIME = 'DATETIME'; |
| 17 |
const TIMESTAMP = 'TIMESTAMP'; |
| 18 |
const ENUM = 'ENUM'; |
| 19 |
const BOOLEAN = 'BOOLEAN'; |
| 20 |
const TINYINT = 'TINYINT'; |
| 21 |
|
| 22 |
// Flags |
| 23 |
const NOT_NULL = 'NOT NULL'; |
| 24 |
const NULL = 'NULL'; |
| 25 |
const DEFAULT = 'DEFAULT'; |
| 26 |
const AUTO_INCREMENT = 'AUTO_INCREMENT'; |
| 27 |
const COMMENT = 'COMMENT'; |
| 28 |
const UNSIGNED = 'UNSIGNED'; |
| 29 |
const ON_UPDATE = 'ON UPDATE'; |
| 30 |
const CURRENT_TIMESTAMP = 'CURRENT_TIMESTAMP'; |
| 31 |
|
| 32 |
const KEY = 'KEY'; |
| 33 |
const PRIMARY_KEY = 'PRIMARY KEY'; |
| 34 |
const UNIQUE = 'UNIQUE'; |
| 35 |
const FULLTEXT = 'FULLTEXT'; |
| 36 |
|
| 37 |
public static function get_col_type( $type, $length = null ) { |
| 38 |
switch ( $type ) { |
| 39 |
case self::INT: |
| 40 |
return 'INT(' . $length . ')'; |
| 41 |
case self::BIGINT: |
| 42 |
return $length ? 'BIGINT(' . $length . ')' : 'BIGINT'; |
| 43 |
case self::VARCHAR: |
| 44 |
return 'VARCHAR(' . $length . ')'; |
| 45 |
case self::TEXT: |
| 46 |
return 'TEXT'; |
| 47 |
case self::LONGTEXT: |
| 48 |
return 'LONGTEXT'; |
| 49 |
case self::DATETIME: |
| 50 |
return 'DATETIME'; |
| 51 |
case self::TIMESTAMP: |
| 52 |
return 'TIMESTAMP'; |
| 53 |
case self::ENUM: |
| 54 |
return 'ENUM(' . $length . ')'; |
| 55 |
case self::BOOLEAN: |
| 56 |
return 'BOOLEAN'; |
| 57 |
case self::TINYINT: |
| 58 |
return 'TINYINT(' . $length . ')'; |
| 59 |
default: |
| 60 |
return 'VARCHAR(255)'; |
| 61 |
} |
| 62 |
} |
| 63 |
|
| 64 |
public static function build_flags_string( $flags = [] ): string { |
| 65 |
return implode( ' ', $flags ); |
| 66 |
} |
| 67 |
|
| 68 |
public static function build_key_string( $key, $column, $key_name = null ): string { |
| 69 |
$key_name = $key_name ?? $column; |
| 70 |
|
| 71 |
return $key . ' `' . $key_name . '` (`' . $column . '`)'; |
| 72 |
} |
| 73 |
|
| 74 |
public static function get_primary_key_string( $column ): string { |
| 75 |
return 'PRIMARY KEY (`' . $column . '`)'; |
| 76 |
} |
| 77 |
} |
| 78 |
|