[PHP/PEAR] Combineren van PEAR::DB en PEAR::Cache

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • rednek
  • Registratie: Juli 1999
  • Laatst online: 01-09 17:44
Ik heb een probleem, in het systeem wat ik gebroud heb wordt uitvoerig gebruik gemaakt van de Pear DB package maar omdat het een beetje druk begint te worden wil ik nu de Pear Cache packege gebruiken om PEAR::DB Result sets te cachen. Dit lukt mij voor geen meter.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    $objDbCore = DB::connect( "mysql://User:Pass@196.168.1.154/DB" );
    $objCache = new Cache('file',array('cache_dir' => PATH_CACHE_ROOT) );
    $strSql =   "SELECT ".
                    " core_menu.*, ".
                    " core_modules.modclassname as modclassname, ".
                    " core_modules.modfilename as modfilename ".
                "FROM core_menu ".
                    "LEFT JOIN core_modules ON core_modules.id = core_menu.modid ";
    $objCache->remove( md5( $strSql ) );
    if( !$objCache->isCached(md5($strSql)) )
    {
        $objResult = $objDbCore->query( $strSql );
        $objCache->save( md5( $strSql ) , $objResult, 3);
        $objResult = $objCache->get( md5( $strSql ) );
    }
    var_dump($objResult);


Het save'n van de cache file gaat goed db connectie gaat goed alleen wordt totaal niet de result opgeslagen die terug gegeven wordt door de PEAR::DB class. Helppppp.

edit: $objCache->generateID($strSql) naar md5($strSql)

[ Voor 13% gewijzigd door rednek op 19-10-2005 15:02 ]


Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Tenzij ik verkeerd kijk, maar:
- Je removed altijd je cache op regel 9
- Je gebruikt isCached met een andere id (nl: md5($strSql) ipv $strSql)
- Je cached maar 3 seconden

Komen er wel cachefiles op je filesystem terecht? :)

Acties:
  • 0 Henk 'm!

  • rednek
  • Registratie: Juli 1999
  • Laatst online: 01-09 17:44
De cache file wordt gewoon opgeslagen, het weghalen van de cache is gewoon een manier om de code te testen. Het probleem licht hem in het feit dat wat er opgeslagen wordt in de cache totaal geen result set is en geen query result data heeft.

[ Voor 9% gewijzigd door rednek op 19-10-2005 15:03 ]