脚本查询数据表结构返回,可扩展

来源:互联网 发布:.net在线考试系统源码 编辑:程序博客网 时间:2024/04/29 09:29

本函数为了方便ThinkPHP Model数据表的结构的返回.

运行环境PHP5.6及以上.

<?phpif(isset($argv[1])):    $mysqli = new Mysqli('172.17.0.2','web_root','music_mysql!','music');    $query = "SHOW FULL COLUMNS FROM {$argv[1]};";    $fieldsArr = [];    $insertField = '';    $allField = '';    if ($mysqli->multi_query($query)):        do {            if ($result = $mysqli->store_result()):                while ($row = $result->fetch_assoc()):                    $insertField .= $row['Field'].',';                    $allField .= '"'.$row['Field'].'",';                    $type = null;                    switch(substr($row['Type'],0,3)):                        case 'int':                            $type = 'int';break;                        case 'var'://varchar                            $type = 'varchar';break;                        case 'tin'://tinyint                            $type = 'tinyint';break;                        case 'cha': //char                            $type = 'char';break;                        case 'dat': //datetime                            $type = 'datetime';break;                        case 'dec': //decimal                            $type = 'decimal';break;                        case 'blo': //blob                            $type = 'blob';break;                        case 'flo': //float                            $type = 'float';break;                        case 'sma': //smallint                            $type = 'smallint';break;                        case 'enu': //enum                            $type = 'enum';break;                        case 'big': //big                            $type = 'bigint';break;                    endswitch;                    $row['Key'] == 'PRI' ? $pri = $row['Field'] : null;                    $fieldType[$row['Field']] = $type;                endwhile;                $result->free();            endif;        } while ($mysqli->more_results() && $mysqli->next_result());    endif;    $fieldsArr['allField'] = $allField;    $fieldsArr['_pk'] = $pri;    $fieldsArr['_type'] = $fieldType;    $fieldsArr['insertField'] = $insertField;    file_put_contents('outPut.php',var_export($fieldsArr,true));endif;


0 0