|
Posted by "M. Sokolewicz" on 11/26/20 11:17
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@gmail.com> wrote in message
> news:fa07888a05052708047a67ac54@mail.gmail.com...
> 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@emigen.co.uk> 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
>>
>>
Navigation:
[Reply to this message]
|