如何比较PHP中的两个SQL文件查询结构

时间:2015-10-28 07:15:06

标签: php

我有两个sql文件(t1.sql和t2.sql)。两个sql文件是不同的版本,两个文件包含创建查询。我想比较两个sql文件查询,以检查查询结构是否已更改。

例如: -

t1.sql file:
CREATE TABLE `static_ids` (
  `access_id` int(11) unsigned NOT NULL DEFAULT '0',
  `group_id` int(11) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`access_id`,`group_id`)
) ENGINE=MyISAM;

t2.sql file:
CREATE TABLE `static_ids` (
  `access_id` int(11) unsigned NOT NULL DEFAULT '0',
  `group_id` int(11) unsigned NOT NULL DEFAULT '0',
  `group_name` varchar(50) NOT NULL DEFAULT '',
  PRIMARY KEY (`access_id`,`group_id`)
) ENGINE=MyISAM;

在此示例中,表static_ids结构的创建查询不同。

请通过PHP比较两个sql文件查询。提前谢谢。

1 个答案:

答案 0 :(得分:1)

要仅使用PHP可靠地检查结构是否相同,您基本上必须重写MySQL解析器。例如,它必须理解

id     int;

相当于

`id` int(11) signed DEFAULT NULL;

更简单的解决方案是在空白MySQL数据库上运行CREATE TABLE命令,然后执行DESCRIBE table_name to a get a list of all the columns that were created as. You can then run through the list of columns for the two tables in a PHP for循环并比较它们。