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] =>)
)
しかし、私はトンのような単純な結果を必要とします彼:
array(
array('INT(10)', 'col1'),
array('VARCHAR(50)', 'col2'),
array('DATE', 'col3')
);
すべての可能な解決策があります。おかげ
-ve票も歓迎されている。.. – Awan
関連回答:[フェッチする方法列'MySQLのテーブルを作成する'クエリ文字列の名前?](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