Thanks for the reply Bill, however this did not solve the problem. I still receive the same error with your method as well.
1064: You have an error in your SQL syntax near '; CREATE TABLE Departments ( DeptID int(10) unsigned NOT NULL auto_increment,' at line 4 > Are you first creating a new database first with mysql_create_db() > before trying to run your schema? What error message do you get? The > code you've posted is only creating a table. Yes. I am: $V2DB = "V2_SL".$CompanyID; $result = mysql_create_db($V2DB, $linkI); mysql_select_db ($V2DB, $linkI) or die ("Could not select ".$V2DB." Database"); > Also, rather than opening and reading in an external file or > doing all > those $sql .= lines, you might have an easier time using > heredoc syntax, > which would let you do something like > > $sql = <<<SQL > CREATE TABLE IP_Dept ( > IP_Addr int(10) unsigned NOT NULL default > DeptID int(10) unsigned NOT NULL default > > ...etc > > SQL; > > $result = mysql_query($sql,$linkI); Thanks for that tip, however it fails the same as opening the file and same as "$sql .=" > (hopefully $linkI is your mysql connection) This way you > don't have to bother with all that quoting. Yes, $linkI is my connection identifier. I just have an awful feeling that PHP/mySQL won't let me stack commands like that because if I just do one table, like this: $sql = <<<SQL CREATE TABLE Schedule ( ScheduleID int(10) unsigned NOT NULL auto_increment, TargetRange char(255) default NULL, ScannerID int(10) unsigned NOT NULL default '0', RunEvery char(50) default NULL, NextRun datetime default NULL, LastRun datetime default NULL, PRIMARY KEY (ScheduleID) ) TYPE=MyISAM; SQL; It "works". However I'm dreading doing this one table at a time. Grr. > Daevid Vincent wrote: > > I need to use PHP to duplicate the schema of a mysql database. This > > seems like it should be a simple task -- taking a 'template' db and > > cloning it with a new name. > > > > I've tried things like: > > > > $filename = "myDB.sql"; > > $fd = fopen ($filename, "r"); > > $sql = fread ($fd, filesize ($filename)); > > fclose ($fd); > > > > And > > > > $lines = file($filename); > > foreach ($lines as $line_num => $line) { $sql .= $line; > > } > > > > And > > $sql .= "CREATE TABLE IP_Dept ("; > > $sql .= " IP_Addr int(10) unsigned NOT NULL default > > '0',"; > > $sql .= " DeptID int(10) unsigned NOT NULL default > > '0'"; > > $sql .= ");"; > > > > $sql .= "CREATE TABLE ResolveTable ("; > > $sql .= " IP_Addr int(10) unsigned NOT NULL default > > '0',"; > > $sql .= " Name char(255) NOT NULL default '',"; > > $sql .= " Custom char(1) default NULL,"; > > $sql .= " Global char(1) default 'Y',"; > > $sql .= " OSVersion char(255) default NULL,"; > > $sql .= " RowID int(10) unsigned NOT NULL > > auto_increment,"; > > $sql .= " Display enum('Yes','No') NOT NULL default > > 'Yes',"; > > $sql .= " PRIMARY KEY (RowID)"; > > $sql .= ");"; > > > > echo "<PRE>".$sql."</PRE><P>"; > > $result = mysql_query($sql,$linkI); > > > > But ALL of them fail! Ugh!!! Can I not stack commands like that? Is > > there some way to read in a .sql file via PHP? The problem > is that my > > web pages are on a web server and the db is on a mysql > server which are > > different machines, so calling a system() or other execute style > > function won't work for me. > > > > I figured, "Ah! Why don't I just make a template db on the > server and > > issue some SQL command to 'clone' that and rename it". > You'd think that > > was pretty straight forward, but I can't find any examples > or commands > > to do this seemingly trivial task. Ideas? > > > > > > > --------------------------------------------------------------------- > > Before posting, please check: > > http://www.mysql.com/manual.php (the manual) > > http://lists.mysql.com/ (the list archive) > > > > To request this thread, e-mail <[EMAIL PROTECTED]> > > To unsubscribe, e-mail > <[EMAIL PROTECTED]> > > Trouble unsubscribing? Try: > http://lists.mysql.com/php/unsubscribe.php > > > > > --------------------------------------------------------------------- > Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > > To request this thread, e-mail <[EMAIL PROTECTED]> > To unsubscribe, e-mail > <[EMAIL PROTECTED]> > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php