Re: Getting database name from link identifier

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

 



On 2/25/2014 5:22 PM, Aziz Saleh wrote:
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.

Also there is this:

|<?php
function  mysql_current_db()  {
    $r=  mysql_query("SELECT DATABASE()")  or  die(mysql_error());
    return  mysql_result($r,0);
}
?>|



[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