at the depth of execQuery(), an in-house function, it has already selected a database, (default for the project). my apologise for saying "problem with using mysql_query( ...)", it was my misunderstanding of this in-house function. Now I can run the script with "Create database ..." in the script. yes file_get_contents('installation.sql') was much better :) the problem is that not all the client site will have phpMyAdmin, now the problem has been reduced to just get rid of all comment/non-sql fluff and do execQuery(file_get_contents('installation.sql')) thanks everyone. ""M. Sokolewicz"" <tularis@xxxxxxx> wrote in message news:D8.51.02217.03F2A924@xxxxxxxxxxxxxxx > tony yau 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. > > > > 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(); > this is *very* overTheTop; why not just do: > $contents = file_get_contents('installation.sql'); > ??? > > execQuery($contents); > > > > 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