Re: novice: how to run .sql script from php?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux