C語言中,使用MySQL API 編寫程序與數據庫交互時,經常需要用到mysql_error函數來獲取相應的錯誤信息。mysql_error返回值的作用比較重要,在程序中可以判斷是否成功執行SQL語句或者出錯的原因。
char *mysql_error(MYSQL *mysql);
mysql_error函數的參數是一個MYSQL結構體指針,返回char類型指針。在使用mysql_error函數之前,需要先通過mysql_real_connect函數與服務器建立連接。
mysql_error函數的返回值分為兩種情況:
1. 當前MySQL連接對象(MYSQL)中無錯誤信息。返回值為NULL。
/*連接MySQL服務器*/ MYSQL mysql; mysql_init(&mysql); if(!mysql_real_connect(&mysql,"localhost","root","password","test",0,NULL,0)) { printf("%s",mysql_error(&mysql));/*連接失敗*/ }
2. 在MYSQL連接對象(MYSQL)中,出現了錯誤信息。將調用該函數,可以獲取錯誤提示信息。
MYSQL_ROW row; MYSQL_RES *result; int rs; rs=mysql_query(connection,"select * from tb_user"); if(rs) { printf("query failed:%s\n",mysql_error(connection)); mysql_close(connection);/*關閉數據庫連接*/ return 1; }
在以上代碼中,mysql_query函數執行SQL語句時,出現了錯誤,于是調用mysql_error函數獲取錯誤提示信息。如果返回NULL,則說明SQL語句執行成功。
需要注意的是,mysql_error函數在使用時需要保證當前MYSQL連接對象中的錯誤信息是最新的,因此可以在某些操作執行之前,通過mysql_ping函數來與服務器交互以獲取最新的錯誤信息。