Purpose:
Meant as a precursor to other plugins, all it does is load a DBI session based on Mysql credentials. This plugin is extremely simple and loads a DBI session
----------------------------
You have two options for how you want to load Perl DBI, you can statically put your database username and password in the LoadMysql plugin for speed, or you can have it dynamically loaded from your eqemu_config.xml file.
Plugin File: mysql.pl
----------------------------
Load from eqemu_config.xml
Code:
sub LoadMysql{
use DBI;
use DBD::mysql;
# CONFIG VARIABLES
my $confile = "eqemu_config.xml"; #default
open(F, "<$confile") or die "Unable to open config: $confile\n";
my $indb = 0;
while(<F>) {
s/\r//g;
if(/<database>/i) {
$indb = 1;
}
next unless($indb == 1);
if(/<\/database>/i) {
$indb = 0;
last;
}
if(/<host>(.*)<\/host>/i) {
$host = $1;
} elsif(/<username>(.*)<\/username>/i) {
$user = $1;
} elsif(/<password>(.*)<\/password>/i) {
$pass = $1;
} elsif(/<db>(.*)<\/db>/i) {
$db = $1;
}
}
# DATA SOURCE NAME
$dsn = "dbi:mysql:$db:localhost:3306";
# PERL DBI CONNECT
$connect = DBI->connect($dsn, $user, $pass);
}
OR Static Load credentials
Code:
sub LoadMysql{
use DBI;
use DBD::mysql;
# CONFIG VARIABLES
$host = 127.0.0.1;
$user = "dbuser";
$pass = "dbpass";
$db = "dbname";
$dsn = "dbi:mysql:$db:localhost:3306";
return DBI->connect($dsn, $user, $pass);
}