my_bool
mysql_change_user(MYSQL *mysql,
const char *user,
const char *password,
const char *db)
更改用户并使 指定的数据库
db
成为 指定的连接上的默认(当前)数据库mysql
。在后续查询中,此数据库是不包含显式数据库说明符的表引用的默认值。
mysql_change_user()
如果连接的用户无法通过身份验证或没有使用数据库的权限,则失败。在这种情况下,用户和数据库不会更改。
如果您不想拥有默认数据库,请
传递一个db
参数
。NULL
此函数重置会话状态,就好像已经完成了新的连接并重新验证一样。(请参阅
第 3.6.6 节,“自动重新连接控制”。)它始终执行
ROLLBACK
任何活动事务,关闭并删除所有临时表,并解锁所有锁定的表。它将会话系统变量重置为相应的全局系统变量的值,释放准备好的语句,关闭
HANDLER
变量,并释放使用获得的锁GET_LOCK()
。即使用户没有改变,这些影响也会发生。
要在不更改用户的情况下以更轻量级的方式重置连接状态,请使用
mysql_reset_connection()
.
与您可以从 获得的相同
mysql_real_connect()
,加上:
-
命令的执行顺序不正确。
-
MySQL 服务器已经消失。
-
查询期间与服务器的连接丢失。
-
出现未知错误。
-
MySQL 服务器不执行此命令(可能是旧服务器)。
-
用户名或密码错误。
-
数据库不存在。
-
用户没有访问数据库的权限。
-
数据库名称太长。