MySQL 函数
在线手册:中文 英文
PHP手册

mysql_errno

(PHP 4, PHP 5)

mysql_errno 返回上一个 MySQL 操作中的错误信息的数字编码

说明

int mysql_errno ([ resource $link_identifier ] )

返回上一个 MySQL 函数的错误号码,如果没有出错则返回 0(零)。

从 MySQL 数据库后端来的错误不再发出警告,要用 mysql_errno() 来提取错误代码。注意本函数仅返回最近一次 MySQL 函数的执行(不包括 mysql_error()mysql_errno())的错误代码,因此如果要使用此函数,确保在调用另一个 MySQL 函数之前检查它的值。

Example #1 mysql_errno() 例子

<?php
    mysql_connect
("localhost""mysql_user""mysql_password");

    
mysql_select_db("nonexistentdb");
    echo 
mysql_errno() . ": " mysql_error(). "\n";

    
mysql_select_db("kossu");
    
mysql_query("SELECT * FROM nonexistenttable");
    echo 
mysql_errno() . ": " mysql_error() . "\n";
?>

以上例子将产生如下输出:

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Note:

如果指定了可选参数则用给定的连接提取错误代码。否则使用上一个打开的连接。

参见 mysql_error()


MySQL 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: 返回上一个 MySQL 操作中的错误信息的数字编码

用户评论:

timstamp.co.uk (25-Jun-2007 03:51)

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().

simon at paarlberg dot dk (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);
  }

phpnet at vemconcursos dot com (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";
}

admin at artfabrique dot ru (18-Oct-2005 01: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

apoio at cyberspace dot org (30-Jun-2000 01: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.