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

From: Date: Sun, 29 May 2005 21:08:40 +0000
Subject: Re: novice: how to run .sql script from php?
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-215967@lists.php.net to get a copy of this message
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


« previous php.general (#215967) next »