473,396 Members | 2,004 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

not a valid MySQL-Link resource

Hi everybody,

I cannot understand the following thinks. The last line of the
fillowing code produces a message about mistake (not a valid MySQL-
Link resource):

$link = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_select_db( $db_name, $link);
$link = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_close( $link );
mysql_select_db( "sss", $link );

It is clear why it is happens. Because I use $link to the database,
which has been closed in the previouse line. To remove this problem I
have to change the code in the following way:

$link = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_select_db( $db_name, $link);
$link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_close( $link_new );
mysql_select_db( "sss", $link );

Now I do the same but with the usage of a function. As it is expected,
the following code produce the message about mistake:

$link = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_select_db( $db_name, $link);
function fff()
{
$link = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_close( $link );
}
fff();
mysql_select_db( "sss", $link );

But what is strange and what I cannot understand is why the previosly
used solution does not work. The following code alse generate the same
message!

$link = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_select_db( $db_name, $link);
function fff()
{
$link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_close( $link_new );
}
fff();
mysql_select_db( "sss", $link );

Thanks.

Apr 26 '07 #1
7 13464

"Kurda Yon" <ku******@yahoo.comwrote in message
news:11*********************@n35g2000prd.googlegro ups.com...
| Hi everybody,
|
| I cannot understand the following thinks. The last line of the
| fillowing code produces a message about mistake (not a valid MySQL-
| Link resource):
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link );
| mysql_select_db( "sss", $link );
|
| It is clear why it is happens. Because I use $link to the database,
| which has been closed in the previouse line. To remove this problem I
| have to change the code in the following way:
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| $link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link_new );
| mysql_select_db( "sss", $link );
|
| Now I do the same but with the usage of a function. As it is expected,
| the following code produce the message about mistake:
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| function fff()
| {
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link );
| }
| fff();
| mysql_select_db( "sss", $link );
|
| But what is strange and what I cannot understand is why the previosly
| used solution does not work. The following code alse generate the same
| message!
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| function fff()
| {
| $link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link_new );
| }
| fff();
| mysql_select_db( "sss", $link );

hard to understand you.

is this your *real* code? you realize that $link INSIDE the function is not
$link OUTSIDE your function, right? why are you worrying about closing the
connection anyway? the connection is dropped after the script is run/exited.
Apr 26 '07 #2
On Apr 26, 9:20 pm, "Steve" <no....@example.comwrote:
"Kurda Yon" <kurda...@yahoo.comwrote in message

news:11*********************@n35g2000prd.googlegro ups.com...
| Hi everybody,
|
| I cannot understand the following thinks. The last line of the
| fillowing code produces a message about mistake (not a valid MySQL-
| Link resource):
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link );
| mysql_select_db( "sss", $link );
|
| It is clear why it is happens. Because I use $link to the database,
| which has been closed in the previouse line. To remove this problem I
| have to change the code in the following way:
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| $link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link_new );
| mysql_select_db( "sss", $link );
|
| Now I do the same but with the usage of a function. As it is expected,
| the following code produce the message about mistake:
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| function fff()
| {
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link );
| }
| fff();
| mysql_select_db( "sss", $link );
|
| But what is strange and what I cannot understand is why the previosly
| used solution does not work. The following code alse generate the same
| message!
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| function fff()
| {
| $link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link_new );
| }
| fff();
| mysql_select_db( "sss", $link );

hard to understand you.

is this your *real* code? you realize that $link INSIDE the function is not
$link OUTSIDE your function, right? why are you worrying about closing the
connection anyway? the connection is dropped after the script is run/exited.
Sorry, may be I explained it in a bad way. The problem is that the
following code produce a message about mistake:

$link = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_select_db( $db_name, $link);
function fff()
{
$link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_close( $link_new );
}
fff();
mysql_select_db( "sss", $link );

Or more precisely the last line causes the following message:
Warning: mysql_select_db(): 2 is not a valid MySQL-Link resource

And it happens only if I execute the fff() function before. I suppose
that origin of the problem is that I close connection to the database
in the function. But I do not understand why. I do give another name
to the connection.
Apr 27 '07 #3
Kurda Yon wrote:
On Apr 26, 9:20 pm, "Steve" <no....@example.comwrote:
>"Kurda Yon" <kurda...@yahoo.comwrote in message

news:11*********************@n35g2000prd.googlegr oups.com...
| Hi everybody,
|
| I cannot understand the following thinks. The last line of the
| fillowing code produces a message about mistake (not a valid MySQL-
| Link resource):
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link );
| mysql_select_db( "sss", $link );
|
| It is clear why it is happens. Because I use $link to the database,
| which has been closed in the previouse line. To remove this problem I
| have to change the code in the following way:
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| $link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link_new );
| mysql_select_db( "sss", $link );
|
| Now I do the same but with the usage of a function. As it is expected,
| the following code produce the message about mistake:
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| function fff()
| {
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link );
| }
| fff();
| mysql_select_db( "sss", $link );
|
| But what is strange and what I cannot understand is why the previosly
| used solution does not work. The following code alse generate the same
| message!
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| function fff()
| {
| $link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link_new );
| }
| fff();
| mysql_select_db( "sss", $link );

hard to understand you.

is this your *real* code? you realize that $link INSIDE the function is not
$link OUTSIDE your function, right? why are you worrying about closing the
connection anyway? the connection is dropped after the script is run/exited.

Sorry, may be I explained it in a bad way. The problem is that the
following code produce a message about mistake:

$link = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_select_db( $db_name, $link);
function fff()
{
$link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_close( $link_new );
}
fff();
mysql_select_db( "sss", $link );

Or more precisely the last line causes the following message:
Warning: mysql_select_db(): 2 is not a valid MySQL-Link resource

And it happens only if I execute the fff() function before. I suppose
that origin of the problem is that I close connection to the database
in the function. But I do not understand why. I do give another name
to the connection.

From the mysql_connect() manual page:

resource mysql_connect ( [string $server [, string $username [, string
$password [, bool $new_link [, int $client_flags]]]]] )

[...]

If a second call is made to mysql_connect() with the same arguments, no
new link will be established, but instead, the link identifier of the
already opened link will be returned. The new_link parameter modifies
this behavior and makes mysql_connect() always open a new link, even if
mysql_connect() was called before with the same parameters. In SQL safe
mode, this parameter is ignored.

This might be what causes your error.

HTH

Sh.
Apr 27 '07 #4
On Apr 27, 12:07 pm, Schraalhans Keukenmeester
<bitbuc...@invalid.spamwrote:
Kurda Yon wrote:
On Apr 26, 9:20 pm, "Steve" <no....@example.comwrote:
"Kurda Yon" <kurda...@yahoo.comwrote in message
>news:11*********************@n35g2000prd.googlegr oups.com...
| Hi everybody,
|
| I cannot understand the following thinks. The last line of the
| fillowing code produces a message about mistake (not a valid MySQL-
| Link resource):
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link );
| mysql_select_db( "sss", $link );
|
| It is clear why it is happens. Because I use $link to the database,
| which has been closed in the previouse line. To remove this problem I
| have to change the code in the following way:
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| $link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link_new );
| mysql_select_db( "sss", $link );
|
| Now I do the same but with the usage of a function. As it is expected,
| the following code produce the message about mistake:
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| function fff()
| {
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link );
| }
| fff();
| mysql_select_db( "sss", $link );
|
| But what is strange and what I cannot understand is why the previosly
| used solution does not work. The following code alse generate the same
| message!
|
| $link = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_select_db( $db_name, $link);
| function fff()
| {
| $link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
| mysql_close( $link_new );
| }
| fff();
| mysql_select_db( "sss", $link );
hard to understand you.
is this your *real* code? you realize that $link INSIDE the function is not
$link OUTSIDE your function, right? why are you worrying about closing the
connection anyway? the connection is dropped after the script is run/exited.
Sorry, may be I explained it in a bad way. The problem is that the
following code produce a message about mistake:
$link = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_select_db( $db_name, $link);
function fff()
{
$link_new = mysql_connect( "localhost","tmp_user","tmpxxx" );
mysql_close( $link_new );
}
fff();
mysql_select_db( "sss", $link );
Or more precisely the last line causes the following message:
Warning: mysql_select_db(): 2 is not a valid MySQL-Link resource
And it happens only if I execute the fff() function before. I suppose
that origin of the problem is that I close connection to the database
in the function. But I do not understand why. I do give another name
to the connection.

From the mysql_connect() manual page:

resource mysql_connect ( [string $server [, string $username [, string
$password [, bool $new_link [, int $client_flags]]]]] )

[...]

If a second call is made to mysql_connect() with the same arguments, no
new link will be established, but instead, the link identifier of the
already opened link will be returned. The new_link parameter modifies
this behavior and makes mysql_connect() always open a new link, even if
mysql_connect() was called before with the same parameters. In SQL safe
mode, this parameter is ignored.

This might be what causes your error.

HTH

Sh.
Thanks! It helps.

Apr 27 '07 #5
It is me again. It seems that I solve the previous problem (with your
help) but get a new one (which seems to be very related to the
previous one).

This part of code produce a message about mistake:

$link = mysql_connect( "localhost","tmp_user","pswxxx" );
function fff()
{
$link_new = mysql_connect( "localhost","tmp_user","pswxxx", true );
mysql_close( $link_new );
}
fff();
mysql_select_db( "sss", $link );
$result = mysql_query( "select * from root" );

The message is:
Access denied for user: 'nobody@localhost' (Using password: NO)
A link to the server could not be established

It complains about the last line. And this message disappears if I do
not coll the function fff (I replace fff(); by //fff();).

Can anybody explain this behavior? It seems that connection made to
the database in the function somehow influences on other connection.

Apr 27 '07 #6
On Fri, 27 Apr 2007 04:53:04 -0700, Kurda Yon wrote:
It is me again. It seems that I solve the previous problem (with your
help) but get a new one (which seems to be very related to the
previous one).

This part of code produce a message about mistake:

$link = mysql_connect( "localhost","tmp_user","pswxxx" );
function fff()
{
$link_new = mysql_connect( "localhost","tmp_user","pswxxx", true );
mysql_close( $link_new );
}
fff();
mysql_select_db( "sss", $link );
$result = mysql_query( "select * from root" );

The message is:
Access denied for user: 'nobody@localhost' (Using password: NO)
A link to the server could not be established

It complains about the last line. And this message disappears if I do
not coll the function fff (I replace fff(); by //fff();).

Can anybody explain this behavior? It seems that connection made to
the database in the function somehow influences on other connection.
I'm guessing here: You use literal strings here in your post making the
mysql connection, but do you perhaps use variables in your real code? If
so, (and assuming globals are off) the function doesn't see these
variables unless you specify them global in the function.

Other than that, I can't think of anything right now. I cannot reproduce
the error anyway with my code (below).

<?PHP
require 'dbdata.inc.php';
$link = mysql_connect($dbhost,$dbuser,$dbpasswd);
function dbopen() {
global $dbhost, $dbuser, $dbpasswd;
$new_link = mysql_connect($dbhost,$dbuser,$dbpasswd,true);
mysql_close($new_link);
}
dbopen();
mysql_select_db($dbname,$link);
$result= mysql_query('select count(*) from customers',$link);
$row = mysql_fetch_row($result);
echo $row['0']; // outputs 13, oughtta be closer to 50 if you ask me;-)
?>

Apr 27 '07 #7
On Apr 27, 3:02 pm, Schraalhans Keukenmeester <inva...@invalid.spam>
wrote:
On Fri, 27 Apr 2007 04:53:04 -0700, Kurda Yon wrote:
It is me again. It seems that I solve the previous problem (with your
help) but get a new one (which seems to be very related to the
previous one).
This part of code produce a message about mistake:
$link = mysql_connect( "localhost","tmp_user","pswxxx" );
function fff()
{
$link_new = mysql_connect( "localhost","tmp_user","pswxxx", true );
mysql_close( $link_new );
}
fff();
mysql_select_db( "sss", $link );
$result = mysql_query( "select * from root" );
The message is:
Access denied for user: 'nobody@localhost' (Using password: NO)
A link to the server could not be established
It complains about the last line. And this message disappears if I do
not coll the function fff (I replace fff(); by //fff();).
Can anybody explain this behavior? It seems that connection made to
the database in the function somehow influences on other connection.

I'm guessing here: You use literal strings here in your post making the
mysql connection, but do you perhaps use variables in your real code? If
so, (and assuming globals are off) the function doesn't see these
variables unless you specify them global in the function.

Other than that, I can't think of anything right now. I cannot reproduce
the error anyway with my code (below).

<?PHP
require 'dbdata.inc.php';
$link = mysql_connect($dbhost,$dbuser,$dbpasswd);
function dbopen() {
global $dbhost, $dbuser, $dbpasswd;
$new_link = mysql_connect($dbhost,$dbuser,$dbpasswd,true);
mysql_close($new_link);}

dbopen();
mysql_select_db($dbname,$link);
$result= mysql_query('select count(*) from customers',$link);
$row = mysql_fetch_row($result);
echo $row['0']; // outputs 13, oughtta be closer to 50 if you ask me;-)
?>
Thank you for your code. I have compared it with my code (line by
line) and found out that the origin of the mistake was that I did not
put $link, as the second argument of the function mysql_query (in the
last line).

Thanks!

Apr 27 '07 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Martin Lucas-Smith | last post by:
Can anyone point me to a regular expression in PHP which could be used to check that a proposed (My)SQL database/table/column name is valid, i.e. shouldn't result in an SQL error when created? ...
3
by: xo55ox | last post by:
Hi, I just build a website and need to somehow trap the user logon and 1) display 'welcome! so and so' at the left hand corner of the page. 2) valid whether the user exists in my MySQL...
19
by: Rodger | last post by:
Hi all, I am getting the following error. ***************************** Microsoft JET Database Engine error '80004005' 'O:\DATA\DSR\DSR_DATA.MDB' is not a valid path. Make sure that the...
13
by: Jack MacRank | last post by:
Hello, I'm coding a webform application in C# (ASP.NET 1.1 SP1 with VS.NET 2003 Pro on WinXP SP2 using IIS 5.1). I created a seperate "data" class to house all the MySQL connection and sql...
3
by: Alejandro Penate-Diaz | last post by:
Hi. I am using this function tu execute updates to a MySql database from a sql string, but I am getting a System.InvalidOperationException: Connection must be valid and open. Database...
4
by: Kentor | last post by:
I have some info that im grabbing from a mysql database with php and i want to make an xml file but i know that i need to be carefull with the & sign and so on... how can i clean the data coming...
3
by: ciki | last post by:
require_once "common.php"; $userid = $_REQUEST; $code = $_REQUEST; $sql = "UPDATE users SET activated='1' WHERE id='$userid' AND act_code='$code'"; db_query($sql); $sql_doublecheck =...
6
by: rhepsi | last post by:
Hi All... I Came across this error while populating a combobox from a datatable (I'm working in VB.NET): Specified argument was out of the range of valid values. Parameter name: '-1' is not a...
11
by: chemlight | last post by:
I'm having a problem. I'm sure I'm going to kick myself over the answer... I have a table that stores vendors and their languages. This table starts out blank. I am querying the table to see if a...
3
by: anniemae | last post by:
What is this? one error message pops up: <configuration><system.windows.forms jitDebugging="true" /> another one is: "<?include[inc/db" to type 'Double' is not valid another is:
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.