On 5/29/05, tony yau <tony.yau@xxxxxxxxxxxx> wrote: > > I realised that there is a fundamental problem with using mysql_query( ...) > to run a .sql script to setup a database, and that was the database needs to > be there in the first place for php to connect to! also there was a lot of > comment lines in the script that was causing problem. ... so I gave up > trying to parse the file. Umm, I suggest you read an awful lot more on mysql. I could be wrong on this, but I can't at face value see anything wrong with mysql_query("create database database_name"); mysql_query("use database_name"). Your problem seems to be your lack of knowledge regarding mysql, and using mysql from PHP. > > instead I did this > 1) create the database with phpmyadmin etc > 2) remove (by hand) all comment lines from the .sql file > and then include the file > > ob_start(); > include 'installation.sql'; > $contents = ob_get_contents(); > ob_end_clean(); > execQuery($contents); > ob_start(); > include 'installation.sql'; > $contents = ob_get_contents(); > ob_end_clean(); is spagetti code. use $contents = file_get_contents("installation.sql") instead. is a bad way of writing that: $contents = file_get_contents("installation.sql"). Where did you get the execQuery() from? If you have an execQuery() function that allows you to do multiple queries seperated by semicolons, then you're sorted. 1 > > not very good but does the job. > thanks for all the help > > tony yau > > "Rory Browne" <rory.browne@xxxxxxxxx> wrote in message > news:fa07888a05052708047a67ac54@xxxxxxxxxxxxxxxxx > I'm assuming that the .sql file consists of a list of MySQL queries, > that when performed sequentially will set up your system. > > That being the case, the perfered way ot install the thing is to do a > 'mysql [host/username/password parameters] < file.sql'. > > I believe you can also run file.sql scripts using phpMyAdmin. > > If you were to define a mysql_run_script() function, it would look a > bit like the following: > > <?pseudo_code > > function mysql_run_script($file){ > > $sql = file_get_contents($file); > > $queries = split_sql_into_individual_sql_queries($sql); > > foreach($queries as $query){ > mysql_query($query); > } > > } > > ?> > > Come to think of it, you could turn the above pseudo code into valid > php code, by defining the split_sql_into_individual_sql_queries() > function. This would involve splitting by ';', taking into account the > possibility that ';' may occur in the middle of a string. > > Check out the code for phpmyadmin, or phpbb(db backup/recover > feature), for a better idea. > > On 5/27/05, tony yau <tony.yau@xxxxxxxxxxxx> wrote: > > Hi All, > > > > I got this .sql script that setup the whole db schema, I can run > > mysql.exe to run on my pc but when it goes to a hosting company's server I > > don't have that command! > > > > So I tried to include("setup.sql") into a string and send that as one > > long sql query. BUT I need to get rid of all the comment lines first in > the > > script!! > > > > can someone give me a better idea of doing this. > > (there must be an equivalent php function like > > mysql_run_script("setup.sql")) > > > > > > thanks > > -- > > Tony Yau > > > > -- > > PHP General Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php