色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c語(yǔ)言mysql_error返回空

在使用C語(yǔ)言連接MySQL數(shù)據(jù)庫(kù)的過(guò)程中,我們通常會(huì)用到mysql_error()函數(shù)來(lái)返回最后一次發(fā)生錯(cuò)誤的信息。然而,若在使用mysql_error()時(shí)得到了一個(gè)空的返回值,我們?cè)撛趺崔k呢?下面將從幾個(gè)方面來(lái)介紹可能出現(xiàn)這種情況的原因以及解決方法。

一、MySQL連接未成功

MYSQL *mysql;
mysql = mysql_init(NULL);
if(!mysql_real_connect(mysql,"localhost","root","password","test",0,NULL,0))
{
printf("連接失敗:Error:%s.\n",mysql_error(mysql));
}

如上面的代碼,在連接MySQL時(shí),如果連接未成功,mysql_error()返回空的情況就會(huì)發(fā)生。解決方法是,在mysql_real_connect函數(shù)之前調(diào)用mysql_init函數(shù),該函數(shù)用來(lái)初始化一個(gè)MYSQL對(duì)象,并分配系統(tǒng)內(nèi)存。

二、不在錯(cuò)誤信息處調(diào)用mysql_error()函數(shù)

MYSQL *mysql;
mysql = mysql_init(NULL);
if(!mysql_real_connect(mysql,"localhost","root","password","test",0,NULL,0))
{
printf("連接失敗:Error:%s.\n",mysql_error(mysql));
}
res = mysql_query(mysql, "select * from user");
if(!res)
{
printf("查詢失敗:Error:%s.\n",mysql_error(mysql));  
}

在上述代碼中,如果mysql_query()函數(shù)執(zhí)行失敗,則在后面的mysql_error()中可能會(huì)遇到返回空的情況。這是因?yàn)樵诓樵兦安](méi)有調(diào)用mysql_error(),我們應(yīng)該在查詢失敗處調(diào)用mysql_error()。

三、未初始化庫(kù)

MYSQL *mysql;
mysql = mysql_init(NULL);
if(!mysql_real_connect(mysql,"localhost","root","password",NULL,0,NULL,0))
{
printf("連接失敗:Error:%s.\n",mysql_error(mysql));
} 
if(mysql_query(mysql,"set names utf8"))
{
printf("文件錯(cuò)誤:Error:%s.\n",mysql_error(mysql));
}

如果使用mysql_query()函數(shù)時(shí),查詢的庫(kù)為NULL,mysql_error()函數(shù)同樣有可能返回空。解決方法是正確初始化庫(kù),例如在上述代碼中,將庫(kù)設(shè)為test即可。

以上就是C語(yǔ)言mysql_error()函數(shù)返回空的可能原因和解決方法的介紹,希望對(duì)大家有所幫助。