文件首頁
MySQL 8.4 C API 開發者指南
下載本手冊
PDF (US Ltr) - 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));
}