catfan / Medoo

The lightweight PHP database framework to accelerate the development.
https://medoo.in
MIT License
4.83k stars 1.15k forks source link

create function option is wrong Syntax. #1078

Closed deawx closed 1 year ago

deawx commented 1 year ago

Information

Describe the Problem Option create is wrong

Detail Code

// Write your PHP code here

//My Code
$db->create("web_admin", [
    "id" => [
        "INT",
        "NOT NULL",
        "AUTO_INCREMENT",
    ],
    "username" => [
        "VARCHAR(50)",
        "NOT NULL",
        "UNIQUE",
    ],
    "password" => [
        "VARCHAR(100)",
        "NOT NULL",
    ],
    "first_name" => [
        "VARCHAR(255)",
        "NOT NULL",
    ],
    "last_name" => [
        "VARCHAR(255)",
        "NOT NULL",
    ],
    "created_at" => [
        "timestamp",
        "NOT NULL",
        "DEFAULT current_timestamp()",
        "COMMENT 'วันสมัครสมาชิก'"
    ],
    "updated_at" => [
        "timestamp",
        "NOT NULL",
        "DEFAULT current_timestamp() ON UPDATE current_timestamp()",
        "COMMENT 'วันอัปเดตสมาชิก'"
    ],
    "PRIMARY KEY (<id>)",
], [
    "ENGINE" => "InnoDB",
    "CHARSET" => "utf8",
    "COLLATE" => "utf8_unicode_ci",
    "COMMENT" => "'ตารางสมาชิก'"
]);

echo $db->last();

**Expected output**

CREATE TABLE IF NOT EXISTS `web_admin` (
        `id` INT NOT NULL AUTO_INCREMENT,
        `username` VARCHAR ( 50 ) NOT NULL UNIQUE,
        `password` VARCHAR ( 100 ) NOT NULL,
        `first_name` VARCHAR ( 255 ) NOT NULL,
        `last_name` VARCHAR ( 255 ) NOT NULL,
        `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP () COMMENT 'วันสมัครสมาชิก',
        `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP () ON UPDATE CURRENT_TIMESTAMP () COMMENT 'วันอัปเดตสมาชิก',
    PRIMARY KEY ( `id` )) ENGINE = INNODB,
    CHARSET = utf8,
    COLLATE = utf8_unicode_ci,
    COMMENT = 'member tables'
//Fixbug Medoo.php Line  1547
$tableOption = ' ' . implode(', ', $optionStack);

To
$tableOption = ' ' . implode(' ', $optionStack);

Sorry my english is bad.

deawx commented 1 year ago

i wrong. sorry