I am trying to read commands from a backup file which has database, table structures statements and insert statements.
Here is the sample of how the file is structured
Code: Select all
#
#http://www.yourresourcecenter.com Backup software
#DATE: 27-08-2005 12:43:42
#
#Database :raghavan_Cms
#
CREATE DATABASE `raghavan_Cms`;
USE `raghavan_Cms`;
#Blogs_tbl
CREATE TABLE `Blogs_tbl` (
`BlogId` int(5) unsigned NOT NULL auto_increment,
`MemberId` varchar(5) NOT NULL default '',
`Title` varchar(50) NOT NULL default '',
`Description` text,
`Date` date NOT NULL default '0000-00-00',
PRIMARY KEY (`BlogId`)
) TYPE=MyISAM;
#
#raghavan_Cms.Blogs_tbl: Table data
#
INSERT INTO raghavan_Cms.Blogs_tbl VALUES(1,'M1003','Beautiful','blog on all the beautiful places across the world!!!','2005-05-25');
#ChatMessages_tbl
CREATE TABLE `ChatMessages_tbl` (
`Id` int(10) unsigned NOT NULL auto_increment,
`ChatRoomId` int(11) unsigned NOT NULL default '0',
`FromId` int(10) unsigned NOT NULL default '0',
`RecipientId` int(11) unsigned default '0',
`Time` timestamp(14) NOT NULL,
`Message` varchar(255) NOT NULL default '',
PRIMARY KEY (`Id`),
KEY `ChatRoomId` (`ChatRoomId`)
) TYPE=MyISAM;
#
#raghavan_Cms.ChatMessages_tbl: Table data
#
#ChatRooms_tbl
CREATE TABLE `ChatRooms_tbl` (
`Id` int(11) NOT NULL auto_increment,
`Name` varchar(25) NOT NULL default '',
`Description` varchar(100) default NULL,
`MaxUsersAllowed` int(11) NOT NULL default '200',
KEY `Id` (`Id`,`Name`,`MaxUsersAllowed`)
) TYPE=MyISAM;
#
#raghavan_Cms.ChatRooms_tbl: Table data
#
INSERT INTO raghavan_Cms.ChatRooms_tbl VALUES(1,'General Discussion','can talk about anything here',100);
INSERT INTO raghavan_Cms.ChatRooms_tbl VALUES(2,'Technology - Hardware','Can talk about hardware and networking',100);
INSERT INTO raghavan_Cms.ChatRooms_tbl VALUES(3,'Techonology - Software','Talk about any language, software or anything relevant to it',5);
#ChatUsers_tbl
CREATE TABLE `ChatUsers_tbl` (
`Id` int(10) unsigned NOT NULL auto_increment,
`ChatRoomId` int(10) unsigned NOT NULL default '0',
`UserName` varchar(20) NOT NULL default '',
`LastUpdate` timestamp(14) NOT NULL,
`SessionId` varchar(32) default NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `UserName` (`UserName`),
KEY `ChatRoomId` (`ChatRoomId`)
) TYPE=MyISAM;
#
#raghavan_Cms.ChatUsers_tbl: Table data
#
INSERT INTO raghavan_Cms.ChatUsers_tbl VALUES(3,1,'Mini','20050826073821','df0aec64d22aa8808a449aac87af8483');
#Images_tbl
CREATE TABLE `Images_tbl` (
`ImageId` varchar(5) NOT NULL default '',
`Location` text NOT NULL,
PRIMARY KEY (`ImageId`)
) TYPE=MyISAM;
#
#raghavan_Cms.Images_tbl: Table data
#
INSERT INTO raghavan_Cms.Images_tbl VALUES('I1001','/images/avatars/000.gif');
INSERT INTO raghavan_Cms.Images_tbl VALUES('I1002','/images/avatars/001.gif');
INSERT INTO raghavan_Cms.Images_tbl VALUES('I1003','/images/avatars/002.gif');
INSERT INTO raghavan_Cms.Images_tbl VALUES('I1004','/images/avatars/003.gif');
INSERT INTO raghavan_Cms.Images_tbl VALUES('I1005','/images/avatars/004.gif');
I use the following regex and I could read:
Code: Select all
preg_match_all("/[\n\r][^#](.+);\n/m", $this->commands, $matches);
print_r($matches);
it prints:
Code: Select all
Array ( [0] => Array ( [0] => CREATE DATABASE `raghavan_Cms`; [1] => ) TYPE=MyISAM; [2] => INSERT INTO raghavan_Cms.Blogs_tbl VALUES(1,'M1003','Beautiful','blog on all the beautiful places across the world!!!','2005-05-25'); [3] => ) TYPE=MyISAM; [4] => ) TYPE=MyISAM; [5] => INSERT INTO raghavan_Cms.ChatRooms_tbl VALUES(1,'General Discussion','can talk about anything here',100); [6] => INSERT INTO raghavan_Cms.ChatRooms_tbl VALUES(3,'Techonology - Software','Talk about any language, software or anything relevant to it',5); [7] => ) TYPE=MyISAM; [8] => INSERT INTO raghavan_Cms.ChatUsers_tbl VALUES(3,1,'Mini','20050826073821','df0aec64d22aa8808a449aac87af8483'); [9] => ) TYPE=MyISAM; [10] => INSERT INTO raghavan_Cms.Images_tbl VALUES('I1001','/images/avatars/000.gif'); [11] => INSERT INTO raghavan_Cms.Images_tbl VALUES('I1003','/images/avatars/002.gif'); [12] => INSERT INTO raghavan_Cms.Images_tbl VALUES('I1005','/images/avatars/004.gif'); [13] => ) TYPE=MyISAM; [14] => ) TYPE=MyISAM; [15] => ) TYPE=MyISAM; [16] => INSERT INTO raghavan_Cms.MemberBlogMap_tbl VALUES('1','M1003'); [17] => INSERT INTO raghavan_Cms.MemberBlogMap_tbl VALUES('3','M1003'); [18] => INSERT INTO raghavan_Cms.MemberBlogMap_tbl VALUES('5','M1003'); [19] => ) TYPE=MyISAM; [20] => INSERT INTO raghavan_Cms.Members_tbl VALUES('M1001','raghavan','chock','raghavan20@rediffmail.com','0790790709','14, boughey rd','stoke','staffordshire','united kingdom','st15 9rd','I am a brave man and also enterprising.','2005-06-10','I1004'); [21] => INSERT INTO raghavan_Cms.Members_tbl VALUES('M1009','logesh','chitibabu','vaazstorm@yahoo.co.in','7944067945','117, college road','stoke on trent','Staffs','UK','st42ee','','2005-07-01','I1001'); [22] => INSERT INTO raghavan_Cms.Members_tbl VALUES('M1006','srinivaasan','sekhar','vaazstorm@yahoo.co.in','0790790790','117, college road','stoke - on - trent','staffordshire','united kingdom','st15 9rd','','2005-06-26','I1003'); [23] => INSERT INTO raghavan_Cms.Members_tbl VALUES('M1004','Diviya','Ganapathy','diviya@hotmail.com','0783007450','117, college road','stoke','staffordshire','united kingdom','st42ee','','2005-06-20','I1001'); [24] => INSERT INTO raghavan_Cms.Members_tbl VALUES('M1005','Murali','venugopal','murali@yahoo.com','0790790790','117, college road','stafford','staffordshire','united kingdom','st98 9df','','2005-06-24','I1001'); [25] => ) TYPE=MyISAM; [26] => INSERT INTO raghavan_Cms.Messages_tbl VALUES(1,'raghavan20','kannan','trial','hi, how are u?','Yes','2005-06-15'); [27] => INSERT INTO raghavan_Cms.Messages_tbl VALUES(3,'raghavan20','srinivasan','hi how do u do?','mate, its been a long time i mailed called in to see wot r u doing','No','2005-06-16'); [28] => INSERT INTO raghavan_Cms.Messages_tbl VALUES(5,'raghavan20','kannan','when is ur next increment','when do u expect to get ur next appraisal?','Yes','2005-06-16'); [29] => INSERT INTO raghavan_Cms.Messages_tbl VALUES(7,'raghavan20','raghavan20','try again','pls discard the message as its sent for trial purpose','Yes','2005-06-19'); [30] => INSERT INTO raghavan_Cms.Messages_tbl VALUES(9,'raghavan20','diviya','trial1','hi da','No','2005-06-21'); [31] => INSERT INTO raghavan_Cms.Messages_tbl VALUES(11,'raghavan20','raghavan20','message 4 ','again for trial','No','2005-06-23'); [32] => ','Yes','2005-06-23');
You can see it reads the' database create statement' and misses the immediate 'use database statement' and not able to read 'create table statements' but reads all 'insert statements'.
Now how do I read all these commands separately???
