<?php
declare (strict_types = 1);
namespace app\command;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;
use think\facade\Db;
//php think DadeSql
class DadeSql extends Command
{
protected function configure()
{
// 指令配置
$this->setName('dadesql')
->setDescription('the dadesql command');
}
protected function execute(Input $input, Output $output)
{
//根据sqlserver创建表
$this->sql();
}
public function sql(){
$table = "accset";//表名
$data = Db::connect('accsey')->query("SELECT TABLE_CATALOG AS '数据库',TABLE_NAME AS '表名',COLUMN_NAME as '字段',DATA_TYPE AS '字段类型',IS_NULLABLE AS '是否必填',CHARACTER_MAXIMUM_LENGTH AS '字符串类型长度',NUMERIC_PRECISION AS '数字类型长度',NUMERIC_SCALE AS '小数点长度' FROM information_schema.COLUMNS WHERE table_name = '{$table}';");
$text = "";
$text .= "CREATE TABLE `{$table}` (";
$text .= "`id` int(11) NOT NULL AUTO_INCREMENT,";
foreach($data as $key=>$it){
if($it['字段类型'] == "varchar"){
$text .= "`{$it['字段']}` varchar({$it['字符串类型长度']}) COLLATE utf8mb4_general_ci DEFAULT NULL,";
}else if($it['字段类型'] == "int"){
$text .= "`{$it['字段']}` int({$it['数字类型长度']}) DEFAULT NULL,";
}else if($it['字段类型'] == "decimal"){
$text .= "`{$it['字段']}` decimal({$it['数字类型长度']},{$it['小数点长度']}) DEFAULT NULL,";
}else if($it['字段类型'] == "datetime"){
$text .="`{$it['字段']}` datetime DEFAULT NULL,";
}else{
$text .= "`{$it['字段']}` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,";
}
}
$text .= "PRIMARY KEY (`id`)";
$text .= ") ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;";
$data = Db::query("{$text}");
print_r($data);
}
}