MySql Tutorial #2 - Verbinden zum Mysql-Server

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MySql Tutorial #2 - Verbinden zum Mysql-Server

    MySql #2 - Verbinden zum Mysql-Server
    Die Verbindung zum Mysql Server sieht in jeder sprache anderes aus, jedoch benötigt man immer 3 Variablen/Constanten:
    • Host: der Host ist die Adresse zum Mysql server in den meisten fällen ist dies der "localhost", also der Pc/Server auf dem das Programm oder der Appache/PhP Server läuft.
    • Username: Der Mysql-User mit dem wir uns in den server einloggen wollen.
    • Passwort: Das Passwort des Mysql Users.
    Neben der Verbindung zum Server müssen wir auch die Datenbank auswählen in die wir reinschauen wollen. also kommt eine weitere Variable/Constante hinzu:
    • Datenbankname: Der Name der Datenbank in die wir wollen. wir können auch gleichzeitig zu mehreren Datenbanken kontackt haben und zwichen drin auch immer wechseln.

    Verbindungsaufbau bei PhP:
    Der Verbindungsaufbau ist bei PhP recht simple gemacht. Wir verbinden zum Server und dannach zur Datenbank, sollte die Verbindung scheitern geben wir einen Fehler raus.

    PHP-Quellcode

    1. $conn = @mysql_connect(SQL_HOST,SQL_USER,SQL_PASS);
    2. mysql_select_db(SQL_DB);

    Jemand der sich schon etwas mit PhP auskennt wird sehen dass ich hier mit defines arbeite, was bei dem Verbindungsaufbau immer von Vorteil ist. Man lässt die defines in einer Datei erstellen und included diese einfach bei bedarf. die Datei würde in etwa so aussehn:

    PHP-Quellcode

    1. <?php
    2. /*------[config.php]------*/
    3. //MYSQL
    4. define('SQL_HOST', 'localhost');
    5. define('SQL_USER', 'tutorial');
    6. define('SQL_PASS', 'varasfawS3Zpaqj');
    7. define('SQL_DB', 'tutorial');
    8. ?>


    Verbindungsaufbau bei Pawn
    Ich benutze in diesem Beispiel das Mysql-Plugin von G-Stylz. Wichtig zu wissen ist, dass man bei Pawn die gesammt verbindung kappen muss um in sich in eine andere Datenbank einzuloggen, also sollte man wenn möglich alles in einer machen.
    Auch hier erstelle ich wieder defines diesmal ganz oben im Script, dies würde dann ungefähr so aussehen:
    [pwn]#define MYSQL_HOST "localhost" //host
    #define MYSQL_USER "tutorial" //User
    #define MYSQL_PASS "varasfawS3Zpaqj" //Passwort
    #define MYSQL_DB "tutorial" //Datenbank[/pwn]
    Nun schreiben wir einen Befehl zum Verbinden mit dem Server, in diesem Befehl würde ich empfehlen einen retry einzubauen, also sollte die VErbindung beim ersten mal nicht gehen, soll es nocheinmal versucht werden und erst dann ein Error in den Serverlog geschrieben werden:
    [pwn]forward MySQLConnect(sqlhost[], sqluser[], sqlpass[], sqldb[]);
    public MySQLConnect(sqlhost[], sqluser[], sqlpass[], sqldb[]) // by Luk0r Edited by [DT]Sniper
    {
    print("MYSQL: Versuche zum MySql-Server zu Connecten...");
    new MYSQL_CON =mysql_connect(sqlhost,sqluser,sqldb,sqlpass);
    if(mysql_ping(MYSQL_CON))
    {
    print("MYSQL: Datenbank-Verbindung stabil.");
    return 1;
    }
    else
    {
    print("MYSQL: Connection Error, Erneut veruschen...");
    MYSQL_CON = mysql_connect(sqlhost,sqluser,sqldb,sqlpass);
    if(mysql_ping(MYSQL_CON))
    {
    print("MYSQL: Datenbank-Verbindung stabil.");
    return 1;
    }
    else
    {
    print("MYSQL: Kann nicht zum MYSQL-Server verbinden, Server ab");
    SendRconCommand("exit");
    return 0;
    }
    }
    }[/pwn]
    Nun müssen wir diesen Befehl nur bei OnGamemodeInit einabuen, mit den Defines als Parametern:
    [pwn]mysql_connect(sqlhost,sqluser,sqldb,sqlpass);[/pwn]
    Das wars schon, bei anderen Sprachen, sieht es immer wieder anders aus, man sollte jedoch meist im Wiki der Sprache alles finden was man wissen muss, wenn man die Grundlagen hier kennt.

    In meinem nächsten Tutorial-Part werden wir uns damit beschäftgen wie ein Sql-Befehl zum erstellen einer Tabelle aussieht und welche Formate, die einzenen Spalten speichern können.

    mfg
    [DT]Sniper

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von [DT]Sniper ()