Re: losing MySQL resource

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



OK.  The secret, as has been stated here before, is to load the class
definitions BEFORE calling session_start().  Thanks to everyone.

""Andy Shellam (Mailing Lists)"" <andy-lists@xxxxxxxxxxxxxx> wrote in
message news:3339C510-BE08-4426-9265-BA1965A9ADDF@xxxxxxxxxxxxxxxxx
> Hi Stan,
>
> Are you saving the instance of your class in $_SESSION?
>
> Class instances can be persisted across sessions, however resources
> (i.e. MySQL and other DB connections) cannot.  What you need to do, is
> every method in your wrapper class that uses the MySQL resource needs
> to check if it's a valid resource (is_resource() springs to mind.)
>
> If it isn't valid, you need to re-create it (using mysql_connect).
>
> The reason for this is that PHP isn't running between session
> requests, so it cannot maintain and monitor the database connection
> across requests.
>
> Andy
>
> On 9 November2009, at 21:11, Stan wrote:
>
> > I got as far as creating a class to be the wrapper ... instantiating
> > an
> > object of that class ... saving the reference in a $_SESSION
> > variable ...
> > but my object reference seems to be invalid upon the next request
> > (in the
> > same session) from the client browser.  What have I missed?
> >
> > Thanks,
> > Stan
> >
> > ""Andy Shellam (Mailing Lists)"" <andy-lists@xxxxxxxxxxxxxx> wrote in
> > message news:FD8200B0-E18A-4AFD-8FFC-F51080621BB4@xxxxxxxxxxxxxxxxx
> >> Hi,
> >>
> >> I got around this by creating a database wrapper class which gets
> >> passed the credentials from the app's config file.  An instance of
> >> the
> >> class is created and saved in the session, and every query to the
> >> database runs through the class's Query() wrapper method which checks
> >> if the connection is alive and valid - if it isn't, it reconnects it
> >> before running the query.
> >>
> >> Andy
> >>
> >> On 9 November2009, at 16:46, Stan wrote:
> >>
> >>> How do I make an Object persistant for the duration of a Session?
> >>> Thanks,
> >>> "Chris" <dmagick@xxxxxxxxx> wrote in message news:4AB6B16C.
> >>> 8@xxxxxxxxxxxx
> >>>> Niel Archer wrote:
> >>>>>> I'm maintaining a session.  I successfully connect to a database
> >>> ($DBConnect
> >>>>>> = mysql_connect()).  I save the connection resource in a session
> >>> variable
> >>>>>> ($_SESSION['connection'] = $DBConnect) ... to use in subsequent
> >>> queries.  It
> >>>>>> remains valid while the user is on the current page.
> >>>>>> print_r($_SESSION['connection']) yields 'Resource id #3', for
> >>>>>> instance.
> >>>>>>
> >>>>>> User browses to a new page ... in the same session.
> >>> $_SESSION['$DBConnect']
> >>>>>> no longer references a valid mysql resource.
> >>>>>> print_r($_SESSION['connection']) yields '0'.
> >>>>>>
> >>>>>> Other "ordinary" values saved in $_SESSION variables remain
> >>>>>> valid.
> >>>>>>
> >>>>>> Is there something special about a mysql resource?
> >>>>>
> >>>>> Not about the resource itself, no. PHP closes connections to a Db
> >>>>> when a
> >>>>> script ends, unless the connection is persistent, so while the
> >>>>> resource
> >>>>> IS saved, the connection to which it refers no longer exists.
> >>>>
> >>>> No resources (whether they are persistent or not) can be stored in
> >>>> the
> >>>> session.
> >>>>
> >>>> http://www.php.net/manual/en/intro.session.php
> >>>>
> >>>> The big pink box has more info.
> >>>>
> >>>> -- 
> >>>> Postgresql & php tutorials
> >>>> http://www.designmagick.com/
> >>>>
> >>>
> >>>
> >>>
> >>> -- 
> >>> PHP Database Mailing List (http://www.php.net/)
> >>> To unsubscribe, visit: http://www.php.net/unsub.php
> >>>
> >>>
> >>
> >
> >
> >
> > -- 
> > PHP Database Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>



-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux