MySQL R7 - Ping auslesen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Ich habe eigentlich immer nur mit dem MySQL Plugin R5 gearbeitet, aber aktuell möchte ich mich mit dem MySQL Plugin R7 beschäftigen!
    Ich möchte nun eine Verbindung aufbauen lassen, und dann möchte ich sobald sie erfolglos war, den Server herunterfahren.
    In der SERVER_log steht :


    Und das steht in der MySQL_log:

    Code
    [13:53:54] >> mysql_connect(127.0.0.1, root, datenbank, ******) on port 3306
    [13:53:54] CMySQLHandler::CMySQLHandler() - constructor called.
    [13:53:54] CMySQLHandler::CMySQLHandler() - Connecting to "127.0.0.1" | DB: "datenbank" | Username: "root"
    [13:53:55] CMySQLHandler::Connect() - Can't connect to MySQL server on '127.0.0.1' (10061) (Error ID: 2003)
    [13:53:55]  
    [13:53:55]  ** MySQL Debugging enabled (05/22/14)
    [13:53:55]  
    [13:53:55] >> mysql_ping( Connection handle: 1 )
    [13:53:55] CMySQLHandler::Ping() - You cannot call this function now. (Reason: Dead Connection)


    Aber nach meinem Code sollte es eigentlich klappen, tut es aber leider nicht.


    Schnipsel des Code´s:


    //MySQL System
    MySQL_Connect = mysql_connect(MySQL_HOST, MySQL_USER, MySQL_DATA, MySQL_PASS),mysql_debug(true);
    if(mysql_ping() == 0){print("MySQL: Verbindung fehlgeschlagen!"), SendRconCommand("exit");}else print("MySQL: Verbindung wurde erfolgreich hergestellt!");


    Versteht ihr, was ich genau falsch mache ?

  • Die funktion mysql_ping() hat ausgedient jedoch kannst du
    mysql_errno() benutzen


    Code
    con_Handler = mysql_connect("127.0.0.1", "root", "datenbank", "pw");
    if(mysql_errno(con_Handler) != 0) print("Keine Verbindung zur Datenbank!");


    Als kleine Info die R7 Version ist richtig alt es gibt schon die Version r38


    Download:
    https://github.com/pBlueG/SA-MP-MySQL/releases


    Dokumentation:
    http://wiki.sa-mp.com/wiki/MySQL/R33



  • Ich habe nun R38 angeschmissen, und muss ehrlich sagen nun möchte der Server nicht mehr mitmachen ;)



    In die MySQL wird nichts geprintet ;)

  • Das liegt daran das du eine funktion aufrufst wie mysql_ping() eventuelle die es nicht mehr gibt und wenn eine funktion aufgerufen wird
    welche nicht existiert, weil du eventuell die include nicht ausgetauscht hast oder dein skript nicht neue kompiliert ist schmiert der server ab.

  • Jap, musste Pawno neustarten und mysql_ping rausnehmen, aber wie kann ich nun dafür sorgen wenn die verbindung steht, das es geprintet wird und wenn sie erfolglos war das der server beendet wird ?


    EDIT:
    Habe es hinbekommen:
    if(mysql_errno() != 0){print("Die Verbindung war erfolglos!"),SendRconCommand("exit");}else print("Die Verbindung war erfolgreich!");


    Danke :)