Re: Getting database name from link identifier

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

 



On Tue, Feb 25, 2014 at 5:21 PM, Larry Martell <larry.martell@xxxxxxxxx>wrote:

> On Tue, Feb 25, 2014 at 5:15 PM, Larry Martell <larry.martell@xxxxxxxxx>
> wrote:
> > On Tue, Feb 25, 2014 at 5:09 PM, Aziz Saleh <azizsaleh@xxxxxxxxx> wrote:
> >> On Tue, Feb 25, 2014 at 4:59 PM, Larry Martell <larry.martell@xxxxxxxxx
> >
> >> wrote:
> >>> On Tue, Feb 25, 2014 at 4:53 PM, Aziz Saleh <azizsaleh@xxxxxxxxx>
> wrote:
> >>> > On Tue, Feb 25, 2014 at 4:47 PM, Larry Martell <
> larry.martell@xxxxxxxxx>
> >>> > wrote:
> >>> >> On Tue, Feb 25, 2014 at 4:41 PM, Aziz Saleh <azizsaleh@xxxxxxxxx>
> >>> >> wrote:
> >>> >> > On Tue, Feb 25, 2014 at 4:28 PM, Larry Martell
> >>> >> > <larry.martell@xxxxxxxxx>
> >>> >> > wrote:
> >>> >> >>
> >>> >> >> Is there any way to find out what database I am connected to
> from a
> >>> >> >> link identifier?
> >>> >> >>
> >>> >> >> I have some code this does this:
> >>> >> >>
> >>> >> >> @ $db = mysql_pconnect($dbserver, $dbuser, $dbpass);
> >>> >> >> @ mysql_select_db($dbname, $db);
> >>> >> >>
> >>> >> >> I know at the time this is executed $dbname is what I want it to
> be.
> >>> >> >> But later on when I pull data using $db, I get data from a
> different
> >>> >> >> database. If I try to echo $db at the time of the query I get
> >>> >> >> "Resource id #5". Can I get the database name from $db?
> >>> >> > You won't be able to, you will need to execute a query on that DB
> >>> >> > connection
> >>> >> > handler to check the DB name currently used:
> >>> >> >
> >>> >> > SELECT DATABASE() as DB_NAME
> >>> >>
> >>> >> Thanks! Indeed I am not 'using' the db that $dbname is set to when I
> >>> >> execute the mysql_select_db command. Now I just have to figure out
> why
> >>> >> that is.
> >>> >
> >>> >
> >>> > Are you making a call to mysql_select_db besides the above during
> your
> >>> > code
> >>> > execution (even on a different DB handler)? If yes, then that would
> be
> >>> > the
> >>> > issue since.
> >>>
> >>> I was simplifying the code for purposes of asking the question.
> >>> Actually the app connects to 23 different databases on different
> >>> servers. The link identifiers are stored in an array. Each
> >>> mysql_select_db is called with a different link identifiers. I am
> >>> echoing out the link identifiers and the array index when I create
> >>> them and also when I use them. I see that the index is the same, the
> >>> resource id # is the same, but I'm connected to a different db then
> >>> the one I called mysql_select_db with.
> >>
> >>
> >> Is it safe to assume that that all of those 23 connections have
> different
> >> host/user/password combination?
> >
> > No, there are multiple connections on each server.
> >
> >> I ran into issues before, where changing the database using the
> >> mysql_select_db function changed the db for the connection for all
> users who
> >> are sharing that connection - PHP was running as apache module and not
> cgi.
> >> I ended up using mysql_connect with the third param as true to force a
> new
> >> connection.
> >
> > I'm using mysql_pconnect, which does not have the new_link param.
> > Sounds like you've hit the problem I'm having. I'll try changing to
> > mysql_connect with new_link true and see if that fixes it.
>
> That indeed was it. I changed to mysql_connect with new_link true and
> the issue went away. Thanks very much!
>

You are welcome. Glad it worked out.

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux