EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Plugins & Mods (https://www.eqemulator.org/forums/forumdisplay.php?f=678)
-   -   Plugin::LoadMysql() (https://www.eqemulator.org/forums/showthread.php?t=37649)

Akkadius 12-24-2013 12:36 AM

Plugin::LoadMysql()
 
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);
}



All times are GMT -4. The time now is 05:50 PM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.