如何从"MySQL Create Table"查询字符串中获取列名? [英] How to fetch column names from 'MySQL Create Table' Query string?

查看:107
本文介绍了如何从"MySQL Create Table"查询字符串中获取列名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用PHP编写一个脚本,该脚本以字符串形式获取"MySQL Create Table"查询,并将列名及其数据类型存储在数组中.

I want to write a script in PHP which get 'MySQL Create Table' Query as string and store column names and their data types in array.

例如:

输入字符串:

CREATE TABLE `test` (
`col1` INT( 10 ) NOT NULL ,
`col2` VARCHAR( 50 ) NOT NULL ,
`col3` DATE NOT NULL
) ENGINE = MYISAM ;

输出:

array(
    array( 'name'=>'col1', 'type'=>'INT', 'size'=>'10' ),
    array( 'name'=>'col2', 'type'=>'VARCHAR', 'size'=>'50' ),
    array( 'name'=>'col3', 'type'=>'DATE', 'size'=>'' )
);

我没有数据库访问权限,无法直接执行查询.有任何PHP库可用于此操作或任何想法吗?

I don't have database access to executes queries directly. Is there any PHP library for this or Any idea ?

谢谢

推荐答案

使用preg_match_all

using preg_match_all

preg_match_all("/`(.+)` (\w+)\(? ?(\d*) ?\)?/", $sql, $_matches, PREG_SET_ORDER);

这将生成一个类似

array(
  array('`col1` INT( 10 )', 'col1', 'INT', '10'),
  array('`col2` VARCHAR( 50 )', 'col2', 'VARCHAR', '50'),
  array('`col3` DATE ', 'col3', 'DATE', '')
);

这篇关于如何从"MySQL Create Table"查询字符串中获取列名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆