2
我想从SQL'CREATE'查询中获取列名。字符串匹配
查询:
CREATE TABLE 'test' (
'col1' INT(10) NOT NULL ,
'col2' VARCHAR(50) NOT NULL ,
'col3' DATE NOT NULL
) ENGINE = MYISAM ;
代码:
preg_match_all("/'(.+)' (\w+)\(? ?(\d*) ?\)?/", $sql, $_matches, PREG_SET_ORDER);
输出:
Array (
[0] => Array ([0] => 'col1\' INT(10) [1] => col1\ [2] => INT [3] => 10)
[1] => Array ([0] => 'col2\' VARCHAR(50) [1] => col2\ [2] => VARCHAR [3] => 50)
[2] => Array ([0] => 'col3\' DATE [1] => col3\ [2] => DATE [3] =>)
)
但我需要简单的结果如T他的:
array(
array('INT(10)', 'col1'),
array('VARCHAR(50)', 'col2'),
array('DATE', 'col3')
);
每种可能的解决方案将不胜感激。由于
-ve票,同时也欢迎.. – Awan
相关答案:如何获取列'MySQL Create Table'Query string?](http://stackoverflow.com/questions/5590928/how-to-fetch-column-names-from-mysql-create-table-query-string/5591342#5591342) – hakre
看起来像一个机智的问题h'addslashes()'或'magic_quotes'(在'preg_match_all'之前) – knittl