thinkphp5连接不上MySql数据库的问题

thinkphp5连接不上MySql数据库的问题,第1张

$this->links[$linkNum] = new PDO($config['dsn'], $config['username'], $config['password'], $params)

我这边采取了把mysql降级到了5.7.18解决了该问题。

其实错误信息已经提示了错误的原因:

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given

警告:mysqli_select_db()的第1个参数应该是mysqli,而你给的是字符串

Warning: mysql_error() expects parameter 1 to be resource, object given in

警告:mysql_error()的第1个参数应该是个资源句柄,而你给的是个对象

据我的判断,可能你没有注意到这两个函数的正确用法,以下是这两个参数的原型:

bool mysqli_select_db ( mysqli $link , string $dbname )

string mysql_error ([ resource $link_identifier = NULL ] )

据此,建议代码修改如下:

$db_selected=mysqli_select_db($link,"homework")

至于“警告:mysql_error()的第1个参数应该是个资源句柄,而你给的是个对象”,这个错误的原因,据我的判断,你还需要检查下 $link 是不是正确连接到mysql了。

用户名密码不对。

如果你是在本地测试,有数据库管理权限,可以查看下有没有 bookhbw这个用户

select * from mysql.user

如果没有可以新建用户,或者在代码里直接使用root账户及密码连接(测试环境无所谓,如果是正式环境,一定要单独建一个用户,分配对应数据库的权限 )

-- 创建用户

create user bookhbw@'localhost' identified by '密码'

-- 授权用户指定的数据库权限

GRANT ALL PRIVILEGES ON 数据库名.* TO 'bookhbw'@'localhost'

-- 刷新权限

FLUSH PRIVILEGES

如果你的数据库中已经有这个账户,看下这个账户设置的Host 是localhost还是ip 还是 %

如果是ip 或者 % 则连接的服务器地址只能写ip 不能写localhost (可以新建一个同名用户绑定localhost)

以上情况,你根据自己的软件 配置,自行设置一下


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9986901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存