文件首頁
MySQL 9.0 C API 開發者指南
下載本手冊
PDF (美式信紙) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.4 mysql_change_user()

bool
mysql_change_user(MYSQL *mysql,
                  const char *user,
                  const char *password,
                  const char *db)

說明

變更使用者,並使 db 指定的資料庫成為 mysql 指定連線上的預設(目前)資料庫。在後續的查詢中,此資料庫是未包含明確資料庫指定符的資料表參考的預設值。

如果連線的使用者無法通過驗證,或沒有使用該資料庫的權限,則mysql_change_user()會失敗。在這種情況下,使用者和資料庫都不會變更。

如果您不想要預設資料庫,請傳遞 NULLdb 參數。

此函數會重設連線狀態,就像執行了新的連線並重新驗證一樣。(請參閱第 3.6.8 節「自動重新連線控制」。)它總是執行任何活動交易的 ROLLBACK、關閉並刪除所有暫存資料表,並解除所有鎖定資料表的鎖定。它會將連線系統變數重設為對應全域系統變數的值、釋放預處理語句、關閉 HANDLER 變數,並釋放使用 GET_LOCK() 取得的鎖定。清除因呼叫 mysql_bind_param() 而定義的任何目前查詢屬性。即使使用者未變更,也會發生這些影響。

若要在不變更使用者的情況下以更輕量的方式重設連線狀態,請使用 mysql_reset_connection()

傳回值

成功則為零。若發生錯誤則為非零值。

錯誤

與從 mysql_real_connect() 取得的錯誤相同,外加

範例

if (mysql_change_user(&mysql, "user", "password", "new_database"))
{
   fprintf(stderr, "Failed to change user.  Error: %s\n",
           mysql_error(&mysql));
}