Subject | Re: fbird_add_user and fbird_service_attach (create db without isql, WORKS) |
---|---|
Author | Robert |
Post date | 2004-12-07T20:30:28Z |
--- In firebird-php@yahoogroups.com, Lester Caine <lester@l...> wrote:
is my code that creates the user account and the DB without isql. I'm
using PHP5.0.l and yes this code works perfectly for me, I had to
actually read the CVS to find all of this out.
/* These are temporary values, that will only be used during install
*/
$tmp_user = 'sysdba';
$tmp_pass = 'masterykey';
/* End of Temp */
// These are params from my config file (Some are not used here)
// Path where firebird Database will reside
$data_path = "/data/";
// Apache's Document root
$http_path = "/wwwroot/htdocs/";
// Name of program's root directory
$doc_root = "challenge";
// Databse Name used by program
$dbname = "test";
// Database host
$dbhost = "localhost";
// User Name used to connect to program database
$dbuser = "phpadmin";
// Password used to connect to program database
$dbpass = "masterkey";
// Recreate Database switch
$recreatedb = 1;
// Ensure db only gets created if needed
$createdb=1;
if(!($service=fbird_service_attach($dbhost,$tmp_user,$tmp_pass)))
die('Unable to Connect to FireBird Serviec Manager!');
If(!($userinfo=fbird_server_info($service,IBASE_SVC_GET_USERS)))
die('Unable to Gather FireBird User information!');
foreach ($userinfo as $user)
$adduser = ($user['user_name']==strtoupper($dbuser)) ? 0 : 1;
if ($adduser) {
if(!fbird_add_user($service, $dbuser, $dbpass))
die('Unable to add User!');
}
fbird_service_detach($service);
$strconnect = "$dbhost:".$data_path.$dbname.".fdb";
if ($db=fbird_connect($strconnect, $dbuser, $dbpass, 'ISO8859_1', 0,
1)) {
if ($recreatedb) {
if(!(fbird_drop_db($db)))
die('Unable to Drop Database!');
}
else
$createdb=0;
fbird_close($db); // May not close may use to prep DB
}
if ($createdb) {
$sql = "CREATE DATABASE '".$data_path.$dbname.".fdb'
USER '$dbuser' PASSWORD '$dbpass'
PAGE_SIZE 8192
DEFAULT CHARACTER SET ISO8859_1; \n";
if(!($db=fbird_query(IBASE_CREATE, $sql)))
die('Unable to Create Database!');
fbird_close($db); // May not close may use to prep DB
echo "The database: $dbname, was created successfully.<br/>";
}
echo "Database Ready!"
> Robert wrote:database in
>
> > I was reading in the forum that with PHP5 you can create a
> > a query statement has anyone have an example of working code?You
>
> Not with Firebird.
> I use the isql path for tikipro and build the database that way.
> need to be connected to a database before you can actually do anyother
> SQL, so unless you bounce of the security database, which I wouldnot
> recommend in php code, then you need a 'database less' way ofcreating it.
>Actually I got everything working now without using isql at all here
> --
> Lester Caine
> -----------------------------
> L.S.Caine Electronic Services
is my code that creates the user account and the DB without isql. I'm
using PHP5.0.l and yes this code works perfectly for me, I had to
actually read the CVS to find all of this out.
/* These are temporary values, that will only be used during install
*/
$tmp_user = 'sysdba';
$tmp_pass = 'masterykey';
/* End of Temp */
// These are params from my config file (Some are not used here)
// Path where firebird Database will reside
$data_path = "/data/";
// Apache's Document root
$http_path = "/wwwroot/htdocs/";
// Name of program's root directory
$doc_root = "challenge";
// Databse Name used by program
$dbname = "test";
// Database host
$dbhost = "localhost";
// User Name used to connect to program database
$dbuser = "phpadmin";
// Password used to connect to program database
$dbpass = "masterkey";
// Recreate Database switch
$recreatedb = 1;
// Ensure db only gets created if needed
$createdb=1;
if(!($service=fbird_service_attach($dbhost,$tmp_user,$tmp_pass)))
die('Unable to Connect to FireBird Serviec Manager!');
If(!($userinfo=fbird_server_info($service,IBASE_SVC_GET_USERS)))
die('Unable to Gather FireBird User information!');
foreach ($userinfo as $user)
$adduser = ($user['user_name']==strtoupper($dbuser)) ? 0 : 1;
if ($adduser) {
if(!fbird_add_user($service, $dbuser, $dbpass))
die('Unable to add User!');
}
fbird_service_detach($service);
$strconnect = "$dbhost:".$data_path.$dbname.".fdb";
if ($db=fbird_connect($strconnect, $dbuser, $dbpass, 'ISO8859_1', 0,
1)) {
if ($recreatedb) {
if(!(fbird_drop_db($db)))
die('Unable to Drop Database!');
}
else
$createdb=0;
fbird_close($db); // May not close may use to prep DB
}
if ($createdb) {
$sql = "CREATE DATABASE '".$data_path.$dbname.".fdb'
USER '$dbuser' PASSWORD '$dbpass'
PAGE_SIZE 8192
DEFAULT CHARACTER SET ISO8859_1; \n";
if(!($db=fbird_query(IBASE_CREATE, $sql)))
die('Unable to Create Database!');
fbird_close($db); // May not close may use to prep DB
echo "The database: $dbname, was created successfully.<br/>";
}
echo "Database Ready!"