Home >Database >Mysql Tutorial >Why Am I Getting the \'Warning: mysql_query(): 3 is not a Valid MySQL-Link Resource\' Error?
Why Do I Get "Warning: mysql_query(): 3 is not a Valid MySQL-Link Resource"?
The "Warning: mysql_query(): 3 is not a valid MySQL-Link resource" error indicates that the variable used to store the MySQL connection resource is invalid. PHP uses resources to represent external objects, each assigned a unique integer id.
Failed Database Connections:
A common cause of this error is a failed database connection. When the connection fails, the variable that should contain the resource becomes null, leading to the "Specified variable is not a valid MySQL-Link resource" error.
Reusing Connections:
The mysql_connect() function, by default, will reuse existing connections rather than create new ones. This can cause issues if a previous connection was closed unexpectedly or if different databases are used on the same server. Passing true to the $new_link parameter can create a new connection for each call to mysql_connect().
Example (Failed Connection):
<code class="php">$link = mysql_connect('localsoth','baduser','badpass'); // failed connection $result = mysql_query("SELECT 1", $link); // throws error</code>
Example (Reused Connection):
<code class="php">$link1 = mysql_connect('localhost','user','pass'); // resource id 1 $link2 = mysql_connect('localhost','user','pass'); // reuse resource id 1 mysql_close($link2); // closes resource id 1 mysql_query("SELECT 1", $link1); // fails due to closed connection</code>
Solution:
To resolve this error, ensure that the database connection is established and remains open during the entire script execution. Avoid closing connections prematurely and consider using the MySQLi extension or PDO instead of the older MySQL extension.
The above is the detailed content of Why Am I Getting the \'Warning: mysql_query(): 3 is not a Valid MySQL-Link Resource\' Error?. For more information, please follow other related articles on the PHP Chinese website!