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 伺服器未實作此命令(可能是舊伺服器)。
-
使用者或密碼錯誤。
-
資料庫不存在。
-
使用者沒有資料庫的存取權。
-
資料庫名稱太長。