[PHP/mysqli] insert_id 'stopt' het parsen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Ik heb mijn dbconn class herschreven voor PHP5 en om gebruik te kunnen maken van mysqli. In mijn insert() functie wil ik het insert_id returnen. Dit is mijn code:
PHP:
1
2
3
4
5
6
7
8
9
10
        $this->_connectToDatabase();

        // $query komt uit code hierboven
        if ( !$this->resource->query ( $query ) ) {
            // Error handling
        }

        $this->_disconnectFromDatabase();
        $insertid = mysqli_insert_id($this->resource);
        return $insertid;

De INSERT query wordt wel goed uitgevoerd (data komt in de database), maar door gebruik te maken van mysqli_insert_id() krijg ik "Warning: Couldn't fetch mysqli in filename". Als ik gebruik maak van $this->resource->insert_id geeft de pagina *NIKS* van output (enkel parse errors of warnings als die er zijn, maar die zijn er niet). Als ik de insert_id property aanroep boven de query krijg ik 0 terug (zoals het hoort, aangezien er nog geen INSERT queries uitgevoerd zijn). Heeft iemand enig idee hoe dit zou kunnen voorkomen worden? Het ligt overigens zeker aan die insert_id. Als ik ervoor een die(__LINE__) zet stopt hij daar, zet ik die erna krijg ik niks meer.

If you can't beat them, try harder


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Waarom gebruik je niet mysql_insert_id? Ik ken de improved serie nog niet, maar als ik zie wel dit staan op de php-manual: "(no version information, might be only in CVS)"

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je disconnect van de database en op de volgende regel vraag je info uit diezelfde afgesloten database op. Wat denk je zelf dat er dan moet gebeuren? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Argh, heel hartelijk bedankt NMe84. Duidelijk zo'n geval van te lang op je eigen code zitten staren. Het werkt nu.

@sjaakduhuuhl: mysqli zit in PHP5 en werkt goed. Het is net het punt om een dbconn class te schrijven voor deze improved mysql extension.

If you can't beat them, try harder


Acties:
  • 0 Henk 'm!

  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

Ik neem aan dat je MySQL 4.1 of hoger gebruikt?

There's no place like 127.0.0.1


Acties:
  • 0 Henk 'm!

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

dingstje schreef op 26 juli 2004 @ 00:37:
Ik heb mijn dbconn class herschreven voor PHP5 en om gebruik te kunnen maken van mysqli.
MatHack schreef op 26 juli 2004 @ 12:59:
Ik neem aan dat je MySQL 4.1 of hoger gebruikt?

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Ik snap niet waarom je zou disconnecten van je DB. dat wordt vanzelf wel gedaan aan het einde van het script. Voorkomt een hoop van dit soort problemen. :)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Bovendien is het nogal inefficient als je meerdere queries uit wil voeren op een pagina.

Acties:
  • 0 Henk 'm!

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Ik doe dat sinds er een paar probleempjes geweest zijn met het open laten van één connectie. Toen bleven er blijkbaar toch nog een heleboel connecties hangen op de server. Hoe het kwam weet ik niet, maar toen hebben we gekozen voor connectie openen, query uitvoeren, connectie sluiten en ik ben dat blijven gebruiken. Ik heb wel voor andere projecten gewoon de connectie opengelaten en merkte een serieuze snelheidswinst.

If you can't beat them, try harder

Pagina: 1