Seditio Source
Root |
./othercms/dotclear-2.22/inc/libs/clearbricks/dbschema/class.mysqlimb4.dbschema.php
<?php
/**
 * @class mysqlimb4Schema
 *
 * @package Clearbricks
 * @subpackage DBSchema
 *
 * @copyright Olivier Meunier & Association Dotclear
 * @copyright GPL-2.0-only
 */
require_once 'class.mysqli.dbschema.php';

class
mysqlimb4Schema extends mysqliSchema
{
    public function
db_create_table(string $name, array $fields): void
   
{
       
$a = [];

        foreach (
$fields as $n => $f) {
           
$type    = $f['type'];
           
$len     = (int) $f['len'];
           
$default = $f['default'];
           
$null    = $f['null'];

           
$type = $this->udt2dbt($type, $len, $default);
           
$len  = $len > 0 ? '(' . $len . ')' : '';
           
$null = $null ? 'NULL' : 'NOT NULL';

            if (
$default === null) {
               
$default = 'DEFAULT NULL';
            } elseif (
$default !== false) {
               
$default = 'DEFAULT ' . $default . ' ';
            } else {
               
$default = '';
            }

           
$a[] = $this->con->escapeSystem($n) . ' ' .
               
$type . $len . ' ' . $null . ' ' . $default;
        }

       
$sql = 'CREATE TABLE ' . $this->con->escapeSystem($name) . " (\n" .
       
implode(",\n", $a) .
           
"\n) ENGINE=InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci";

       
$this->con->execute($sql);
    }
}