De verbinding werd geherinitialiseerd

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • De verbinding werd geherinitialiseerd

      Morgen,

      Ben overgegaan naar mysqli en naar mij idee werkt de website gewoon goed.

      Alleen krijg ik deze melding 'vaak': De verbinding werd geherinitialiseerd


      Ik het idee dat het vaker gebeurt met drukken van een button.

      Heb geen idee in welke richting ik nu moet zoeken. Heb wat lopen google en sommige
      zeggen dat het komt dat je je connection sluit.


      Source Code

      1. $open = mysqli_query($db,"SELECT * FROM `klanten` WHERE naam = '" . $klant . "'") or die(mysqli_error($db));
      2. $data = mysqli_fetch_object($open);
      3. $open->free();
      Zou dat idd hier door komen en moet ik dan gewoon open laten staan?
      Het is namelijk ook zo dat het niet altijd het geval is dat ie dat doet.

      Dat me site nog mysql was had ik totaal nergens last van.

      Iemand hier ideeën cq oplossing voor?

      bedankt
    • ik ben niet bekend met deze melding echter wat mij opvalt is dat je de Object oriented en Procedural door elkaar gebruikt.

      $open->free(); is object oriented
      Maar mqsli_fetch_object is procedural.
      Ik zou dan ook zeggen gebruik 1 van de 2.
      En kijk dan of de melding weg is.

      Met vriendelijke groet,
      Thomas
      The law is what I write down on paper
    • @MOnkNL strict genomen zou dat niet uit moeten maken omdat MySQLi enkel met objecten werkt. Dit in tegenstelling tot de oorspronkelijke MySQL-driver, die zich bediende van resources. Neemt niet weg dat het inderdaad beter zou zijn als je één schrijf/werkwijze hanteert (ofwel de procedurele, ofwel de object georiënteerde stijl waarbij laatstgenoemde waarschijnlijk de voorkeur heeft, of zou moeten hebben).

      @Opium welke PHP versie gebruik je op de webserver waar je die meldingen krijgt, en wat is de exacte melding - is deze echt in het nederlands? :P

      Vermoeden: $db is onbekend wanneer je bovenstaande aanroep van mysqli_query() doet. Staat deze code in een functie of methode waar $db niet bekend is / je $db niet aan meegegeven hebt? Dump $db eens? Grote kans dat deze dan NULL is ofzo?

      In zekere zin klinkt dit plausibel, want bij een aanroep van mysql_query() (oude stijl) werd standaard uitgegaan van de laatst gemaakte verbinding. Hierbij hoefde je niet expliciet de connectie-parameter mee te geven, dit in tegenstelling tot mysqli_query() (nieuwe stijl), waar dit wel moet.

      Waarschijnlijk gaat er dus iets fout met $db. Mogelijk wordt deze ergens overschreven? Hoe refereer je aan $db?

      The post was edited 3 times, last by FangorN ().

    • Hij geeft geen echte error, de brwoser loopt 'vast'.

      [Blocked Image: http://i25.tinypic.com/wk4ade.jpg]
      Alles werkt goed voor de rest op de site, maakt gewoon verbinding met de DB.
      Maar vind het wel vreemd dat ie deze melding opeens krijgt terwijl er voor de rest niks is veranderd alleen dat ik naar MYSQLI ben gegaan.
      Of het moet aan de host liggen maar dat lijkt me ook erg stug.
      Foutmeldingen geeft ie voor de rest niet, ook niet in directadmin is niks te zien.

      Strange...
    • FangorN wrote:

      welke PHP versie gebruik je op de webserver waar je die meldingen krijgt
      Als je zoekt naar "connection was reset" meldingen zit het vaak in de hoek van een (knetter) oude versie van PHP, of iets anders dat uit de pas loopt als je gebruik maakt van MySQLi. Dit alles klinkt als een webserver aangelegenheid, en hoeft niet per se iets met MySQLi te maken te hebben, tenzij er misconfiguratie is of alles gewoon te oud is.

      Vandaar mijn vraag over (PHP) versies. Kijk ook gelijk naar de MySQL(i) versies er gebruikt worden en welke Client API (library) version gebruikt wordt? Idealiter is dit de native driver (nd), en niet een of andere externe MySQL module.

      Ook kan het helpen (is in ieder geval beter voor performance) om op IP-basis een connectie te maken. Gebruik dus bij voorkeur '127.0.0.1' in plaats van 'localhost'.