PDO CONNECTION_STATUS ändert sich nicht

  • Täuscht es mich jetzt oder müsste das nicht so


    PDO::getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));


    heißen? :)


    Edit:



    bekomme da bei eingeschaltenem MySQL: localhost via TCP/IP
    Áusgeschaltenes kann ich leider gerade nicht testen, was kommt den bei dir dort?

  • Ja :D
    Hab das beim Schreiben vergessen - aber nicht beim Testen :D
    Beim Test bekam ich durchweg "connected via tcp/ip" o.ä.
    Selbst wenn ich den mysql-Server runtergefahren hab und danach eine Query abgefeuert hab (spätestens hier hätte in der PDO ja geschalten werden müssen ~connected = false)


    Hab inzw. festgestellt, dass es unzuverlässig ist.
    Nutze jetzt (pseudo code):


    Code
    if !stmt->execute()
        if stmt->errorCode === 2006 // 2006 ^= "server gone away"
            sql->reconnect
  • Noch eine Frage dazu:


    Mir wirft PDO ja beim Verbindungsaufbau ja schon eine Exception wenn keine Verbindung besteht, wo wendest du das denn an? :)

  • endlos Scripts (console/shell).
    Das kann aber auch bei ner Webseite passieren wenn zB die maximale Packetgröße überschritten ist (riesen INSERTs o.ä.).
    Dann sagt der Mysql-Server "nö" (Verbindung geschlossen) (aber kein "tschüss" -- also kein closing frame) und das Script rennt evtl in einen Fatal Error.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!