unsigned int mysql_errno(MYSQL *mysql)


For the connection specified by mysql, mysql_errno() returns the error code for the most recently invoked API function that can succeed or fail. A return value of zero means that no error occurred. Client error message numbers are listed in the MySQL errmsg.h header file. Server error message numbers are listed in mysqld_error.h. Errors also are listed at Appendix B, Errors, Error Codes, and Common Problems.


Some functions such as mysql_fetch_row() do not set mysql_errno() if they succeed. A rule of thumb is that all functions that have to ask the server for information reset mysql_errno() if they succeed.

MySQL-specific error numbers returned by mysql_errno() differ from SQLSTATE values returned by mysql_sqlstate(). For example, the mysql client program displays errors using the following format, where 1146 is the mysql_errno() value and '42S02' is the corresponding mysql_sqlstate() value:

shell> SELECT * FROM no_such_table;
ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist
Return Values

An error code value for the last mysql_xxx() call, if it failed. zero means no error occurred.



Download this Manual
User Comments
  Posted by T. Dorsey Harrington on June 20, 2003
Rather than requiring that we all download the source distribution, which not all of us want to do, why not include the error codes/messages as part of the online docs?
  Posted by Mirko Sacripanti on May 17, 2004
uint STDCALL mysql_errno(MYSQL *mysql)
if (mysql==NULL) return 0;
else return mysql->net.last_errno;

  Posted by Ding on November 16, 2005
I have use this function on an example in mysql_warning_count()
Sign Up Login You must be logged in to post a comment.