我有以下查询:
CREATE TABLE `test` (
`col1` INT( 10 ) NOT NULL ,
`col2` VARCHAR( 50 ) NOT NULL ,
`col3` DATE NOT NULL
) ENGINE = MYISAM ;
我想编写一个通用的PHP脚本,从上面的查询中获取表名(test)。
答案 0 :(得分:1)
如果您可以在运行查询之前访问要查询的字符串,则可以执行以下操作:
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
)
*/
如果由于某种原因无法访问字符串,但是您知道在查询和代码之间数据库中没有创建任何内容,那么您可以使用此查询来检索上次创建的表:
SELECT
*
FROM
information_schema.TABLES
ORDER BY
CREATE_TIME DESC
LIMIT
1;