Php 解析sql查询
我有以下疑问:Php 解析sql查询,php,sql,parsing,Php,Sql,Parsing,我有以下疑问: CREATE TABLE `test` ( `col1` INT( 10 ) NOT NULL , `col2` VARCHAR( 50 ) NOT NULL , `col3` DATE NOT NULL ) ENGINE = MYISAM ; 我想编写一个通用php脚本,从上面的查询中获取表名(test)。如果可以在运行查询之前访问查询到的字符串,可以执行以下操作: preg_match("/^create table `(?P<tablename>)`/i",
CREATE TABLE `test` (
`col1` INT( 10 ) NOT NULL ,
`col2` VARCHAR( 50 ) NOT NULL ,
`col3` DATE NOT NULL
) ENGINE = MYISAM ;
我想编写一个通用php脚本,从上面的查询中获取表名(test)。如果可以在运行查询之前访问查询到的字符串,可以执行以下操作:
preg_match("/^create table `(?P<tablename>)`/i", $query, $matches);
print_r($matches);
/*
Output:
Array
(
[0] => CREATE TABLE `test` (`col1` INT( 10 ) NOT NULL ,`col2` VARCHAR( 50 ) NOT NULL , `col3` DATE NOT NULL ) ENGINE = MYISAM ;
[tablename] => test
[1] => test
)
*/
您可以使用正则表达式。所有类型的输入查询都是CREATETABLE吗?什么是正则表达式。我不擅长正则表达式。如果您所有的查询都是CREATETABLE,您可以拆分它并只得到第三个单词,对吗?是的。在这种情况下,总是创建查询。可能会以更通用的方式解决此任务。
SELECT
*
FROM
information_schema.TABLES
ORDER BY
CREATE_TIME DESC
LIMIT
1;