If you are receiving errors like:
Warning: mysql_close(): 5 is not a valid MySQL-Link resource
Check that you are calling mysql_error() and mysql_errno() BEFORE you call mysql_close().
mysql_errno
(PHP 4, PHP 5)
mysql_errno — Returns the numerical value of the error message from previous MySQL operation
Descrierea
Returns the error number from the last MySQL function.
Errors coming back from the MySQL database backend no longer issue warnings. Instead, use mysql_errno() to retrieve the error code. Note that this function only returns the error code from the most recently executed MySQL function (not including mysql_error() and mysql_errno()), so if you want to use it, make sure you check the value before calling another MySQL function.
Parametri
- link_identifier
-
Conexiunea MySQL. Dacă identificatorul legăturii nu este specificat, se presupune că este ultima legătură deschisă cu ajutorul mysql_connect(). Dacă nu este găsită nici o astfel de legătură, se va încerca crearea uneia prin apelul mysql_connect() fără argumente. În caz că nici o conexiune nu este găsită sau stabilită, se va genera o eroare de nivelul E_WARNING.
Valorile întroarse
Returns the error number from the last MySQL function, or 0 (zero) if no error occurred.
Exemple
Example #1 mysql_errno() example
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!mysql_select_db("nonexistentdb", $link)) {
echo mysql_errno($link) . ": " . mysql_error($link). "\n";
}
mysql_select_db("kossu", $link);
if (!mysql_query("SELECT * FROM nonexistenttable", $link)) {
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
}
?>
Exemplul de mai sus va afişa ceva similar cu:
1049: Unknown database 'nonexistentdb' 1146: Table 'kossu.nonexistenttable' doesn't exist
Vedeţi de asemenea
- mysql_error() - Returns the text of the error message from previous MySQL operation
- » MySQL error codes
mysql_errno
25-Jun-2007 02:51
13-Dec-2005 11:40
Function for creating unique md5 keys in a database. If there are duplets, then a new md5-key will be generated. For your use:
function users_md5create($id){
global $mysql_link;
while ($done==0) {
$md5key = md5(time().($id/2).$loop).md5(time().$id.$loop);
$query = "INSERT INTO users_md5create SET md5key='$md5key', fkey='$id', created=UNIX_TIMESTAMP() ";
$mysql_result = mysql_query($query, $mysql_link);
if(mysql_errno($mysql_link)!=1062) $done=1;
$loop++;
}
return($md5key);
}
08-Dec-2005 02:31
Watch out! Although mysql_errno() supposedly returns the error number from the last MySQL function, if you don't specify a link identifier, it assumes the last link *opened*, NOT the last link *used*.
That means you can actually have mysql_errno() blindly ignore the error caused by the last MySQL function if it didn't use the last opened link.
Here's an example:
$link1 = mysql_connect('localhost', 'user1', 'password1');
$link2 = mysql_connect('localhost', 'user2', 'password2');
// do something wrong using the first link
mysql_select_db('nonexistentdb', $link1);
// if you don't specify the link identifier ...
if (mysql_errno()) {
// the error from the last MySQL function is not reported
echo mysql_errno() . ': ' . mysql_error() . "\n";
}
18-Oct-2005 12:28
All MySQL ErrorCodes can be found in its' on-line manual.
For lazy one here is the link :
http://dev.mysql.com/doc/refman/5.0/en/error-handling.html
30-Jun-2000 12:58
All mysqld error messages are located into the file /usr/local/share/mysql/english/errmsg.txt and listed in numerical order from 999 to 1175. You can change the output language as well, issuing the '-L spanish' option for example. See the manual for more details.
