bool
mysql_change_user(MYSQL *mysql,
const char *user,
const char *password,
const char *db)
變更使用者,並使 db
指定的資料庫成為 mysql
指定連線上的預設(目前)資料庫。在後續的查詢中,此資料庫是未包含明確資料庫指定符的資料表參考的預設值。
如果連線的使用者無法通過驗證,或沒有使用該資料庫的權限,則mysql_change_user()
會失敗。在這種情況下,使用者和資料庫都不會變更。
如果您不想要預設資料庫,請傳遞 NULL
的 db
參數。
此函數會重設連線狀態,就像執行了新的連線並重新驗證一樣。(請參閱第 3.6.8 節「自動重新連線控制」。)它總是執行任何活動交易的 ROLLBACK
、關閉並刪除所有暫存資料表,並解除所有鎖定資料表的鎖定。它會將連線系統變數重設為對應全域系統變數的值、釋放預處理語句、關閉 HANDLER
變數,並釋放使用 GET_LOCK()
取得的鎖定。清除因呼叫 mysql_bind_param()
而定義的任何目前查詢屬性。即使使用者未變更,也會發生這些影響。
若要在不變更使用者的情況下以更輕量的方式重設連線狀態,請使用 mysql_reset_connection()
。
與從 mysql_real_connect()
取得的錯誤相同,外加
-
命令的執行順序不正確。
-
MySQL 伺服器已消失。
-
在查詢期間遺失與伺服器的連線。
-
發生未知的錯誤。
-
MySQL 伺服器未實作此命令(可能是舊伺服器)。
-
使用者或密碼錯誤。
-
資料庫不存在。
-
使用者沒有存取資料庫的權限。
-
資料庫名稱太長。