1. 程式人生 > >C/C++中呼叫api設定mysql連線的編碼方式

C/C++中呼叫api設定mysql連線的編碼方式

MySQL在C/C++中呼叫api設定連線mysql的編碼方式有以下幾種方法:

1. mysqli_set_charset
呼叫示例:

  1. ret = mysql_set_character_set(mysql, "utf8");  
說明:
推薦使用的設定方法,與mysql的連線斷開自動重連後仍能保持設定的編碼格式,並且影響mysql_real_escape_string函式功能,使mysql_real_escape_string函式使用設定的編碼格式轉義字串。
但該函式在mysql5.0.5版本以後才支援,故版本太低者...。
2. 執行sql語句:SET NAMES
呼叫示例:

  1. ret = mysql_real_query(mysql, 
    "SET NAMES UTF8;",   
  2.  (unsigned long) strlen ("SET NAMES UTF8;"));  
說明:
使用sql語句執行,只能影響當前與資料庫的連線,斷開自動重連後編碼格式會重置為預設的配置。
3. 設定MYSQL_SET_CHARSET_NAME屬性
呼叫示例:
  1. ret = mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "utf8");  
說明:
跟mysql_set_character_set類似,斷開自動重連後仍能保持設定的編碼格式,只是不會影響到mysql_real_escape_string函式。

並且在mysql5.0.5版本都可以使用,低版本可以使用該方法代替。
需要特別說明的是隻有在呼叫mysql_real_connect連線資料庫之前修改該屬性才會生效。