MySQL 8.0 C API Developer Guide
This section describes C API functions other than those used for prepared statements, the asynchronous interface, or the replication stream interface. For information about those, see Section 6.4, “C API Prepared Statement Function Descriptions”, Chapter 7, C API Asynchronous Interface, and Chapter 10, C API Binary Log Interface.
      In the descriptions here, a parameter or return value of
      NULL means NULL in the sense
      of the C programming language, not a MySQL NULL
      value.
    
      Functions that return a value generally return a pointer or an
      integer. Unless specified otherwise, functions returning a pointer
      return a non-NULL value to indicate success or
      a NULL value to indicate an error, and
      functions returning an integer return zero to indicate success or
      nonzero to indicate an error. Note that “nonzero”
      means just that. Unless the function description says otherwise,
      do not test against a value other than zero:
    
if (result)                   /* correct */
    ... error ...
if (result < 0)               /* incorrect */
    ... error ...
if (result == -1)             /* incorrect */
    ... error ...
      When a function returns an error, the
      Errors subsection of the function
      description lists the possible types of errors. You can find out
      which of these occurred by calling
      mysql_errno(). A string
      representation of the error may be obtained by calling
      mysql_error().