如题所示使用的是PHP7的版本,连接MYSQL8.0数据库遇到的问题,提供我个人的解决办法。
我的报错是:
Call to undefined function mysqli_connect()
首先明确
-
保证PHP与MySQL可以正常使用
访问localhost:80【或者你设置的端口号】是有页面的
-
服务正常启用着
-
使用
mysqli_connect()
而不是mysql_connect()
因为7.x版本中已经舍弃了mysql_connect();
是这篇文章解决了 https://www.codenong.com/cs107088187/
打开PHP的安装目录找到php.ini
如果没有复制php.ini-development或者php.ini-production重命名为php.ini
修改里面的配置,就是去掉前面的 ; 打开对应功能
extension=bz2
extension=curl
extension=gd2
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=pdo_sqlite
图示:
还有一个需要改
extension_dir="[php安装目录]\ext"
这里不能照抄
啊,找到自己的目录。保存php.ini文件关闭
重启一下Apache
我也不是很懂为什么要重启
在apache下的htdocs下新建一个newpublic.php文件【反正php文件就行】
$con=mysqli_connect('localhost','root','123456');
if ($con) {
echo '连接成功';
}else{
echo "连接失败";
访问 http://localhost:8080/newpublic.php
我监听的是8080端口,如果不一样可以需要修改
如果问题没有解决话可以试试下面的方法,因为的也有根据下面的方法修改过。不清楚有无影响。(具体看链接:PHP连接MYSQL8.0失败 )
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';修改权限
FLUSH privileges;
安装的 MySQL Server 8.0\MySQLData下面(这是隐藏文件)的my.ini 这个配置文件里的[mysqld]这个部分,添加default_authentication_plugin=mysql_native_password
重启MySQL服务
PHP7的版本,连接MYSQL8.0Call to undefined function mysqli_connect()因为7.x版本中已经舍弃了mysql_connect();
An exception occurred in driver: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
php 连接 mysql 8.0
只 用户设置就行create user 'user'@'ip' identified by 'pwd';
grant ...
今天在翻php manul的时候,发现mysqli 的查询可以传递一个有意思的参数
复制代码 代码如下:
@mysqli_query($this->sql,$SQL,($method ? MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT));
在php manul上面对这两个参数是这样解释的。
复制代码 代码如下:
Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By d
并且按照网上的各种方式配置了php.ini之后依然无果。我这里指的各种方式包括但不限于:
1、安装mysqli模块,(php 5.3之后基本自带,不需要安装)
2、开启模块支持,也就是去掉php.ini中关于mysqli的extension
3、修改php.ini中的extension_dir为正确目录
复制libmysql.lib到电脑个各种位置,如C/
安装使用PHP7,使用的时候遇到mysqli无法使用,然后各种百度,发现他们的方法用了都没有效果
页面依然出现了**Call to undefined function mysqli_connect()**的问题。
因为我这边装的是集成环境phpStudy,发现使用别的PHP版本是没有问题的。灵机一动,我决定对比两个PHP版本的php.ini文件,果然不出所料。相关扩展没有打开,然后我将我常用的库打开,还是不行的样子~~
好吧,我继续对比文件,发现我这个PHP7的php.ini文
提示Call to undefined function mysql_connect(),明显是函数调用错误
查到一篇博客才知道是自己看的教程太老了,现在mysql的函数已经不用mysql_connect()这种写法了。
mysqli_connect()
同理,其它函数也作类似的修改,其中部分函数需要再加上一个$connection参数,如下:
mysql_select_db(数据库名)改为mysqli_select_db($conneciton, 数据库名 )
mysql_query(sq
最近在学习PHP,把自己搞得,头昏脑胀,欲哭无泪,(我能怎么办,我也很无奈啊!)好了,下面就开始我的表演了!嘿嘿:其中错误 Call to undefined function mysqli_connect() 和错误 can’t find class mysqli in :* 错误是同一种错误,只是php中连接 MySQl的不同写法而已,首先
新建文件输入这句话,就会出现 你所用的 php 的所
最近朋友遇到canal无法连接数据库的问题
报错代码:
ERROR c.a.otter.canal.parse.inbound.mysql.MysqlEventParser - dump address /127.0.0.1:3306 has an error, retrying. caused by
com.alibaba.otter.canal.pars...
### 回答1:
这个错误提示是因为在代码中调用了一个未定义的函数mysqli_connect()。这个函数是PHP中连接MySQL数据库的函数,如果没有正确安装和配置PHP的MySQL扩展,就会出现这个错误。需要检查PHP的MySQL扩展是否正确安装和配置,并且确保代码中正确调用了mysqli_connect()函数。
### 回答2:
出现 "call to undefined function mysqli_connect()" 的错误提示,通常是因为 PHP 没有安装或启用 mysqli 扩展库。MySQLi 是一个 PHP 扩展库,用于操作 MySQL 数据库。如果未正确安装或启用该扩展库,则无法调用相关的函数,比如 mysqli_connect()。
要解决这个问题,可以按以下步骤操作:
1. 检查是否已安装 mysqli 扩展库
可以通过在 PHP 代码中调用 phpinfo() 函数来检查是否已启用 mysqli 扩展库。在 phpinfo() 的输出信息中,可以看到是否有 mysqli 的相关信息。如果找不到相关信息,就需要安装 mysqli 扩展库。
2. 安装 mysqli 扩展库
如果 PHP 没有安装 mysqli 扩展库,就需要手动安装该扩展库。具体的安装方法,可以根据操作系统和 PHP 版本来确定。一些 Linux 发行版上,可以使用包管理器来安装 mysqli 扩展库。在 Windows 上,可以在 php.ini 文件中找到 mysqli 的配置,并启用相关扩展。
3. 检查 php.ini 文件中 mysqli 配置
如果已安装 mysqli 扩展库,但仍出现错误提示,可以在 php.ini 文件中检查 mysqli 的配置是否被正确启用。在 php.ini 文件中,可以搜索 mysqli,并检查是否存在相关的配置信息。
4. 重启 Web 服务器
在修改了 php.ini 文件或者安装了新的扩展库后,需要重启 Web 服务器,才能使修改生效。
总之,在出现 "call to undefined function mysqli_connect()" 错误时,首先需要检查 PHP 是否已经启用 mysqli 扩展库,是否正确配置了相关参数。只有确保 PHP 已正确安装或启用该扩展库,才能顺利调用 mysqli 相关函数。
### 回答3:
“call to undefined function mysqli_connect()”是一个常见的PHP错误信息,它经常出现在使用MySQL数据库时。这个错误提示表明PHP无法识别mysqli_connect()函数,即函数被未定义或未加载。这通常由以下两个原因导致:
1. 缺少MySQLi扩展
MySQLi是PHP连接MySQL数据库的扩展,如果它没有正确安装或启用,PHP就无法识别mysqli_connect()函数。这种情况下,我们需要检查服务器是否安装了MySQLi扩展,并在PHP中启用它。我们可以通过以下命令检查MySQLi扩展是否已安装:
php -m
如果MySQLi被列出,那么它已经被安装,否则我们需要安装并启用它。我们可以使用以下命令在Ubuntu上安装MySQLi:
sudo apt-get install php7.0-mysqli
启用MySQLi扩展则需要打开php.ini文件,找到以下代码行并将注释解开:
extension=mysqli.so
2. 版本兼容性
另一个可能的原因是PHP版本与MySQLi版本不兼容。在PHP5.5以上版本,MySQL扩展已经被弃用,取而代之的是MySQLi扩展。如果使用低于PHP5.5版本的PHP时,则无法使用MySQLi扩展。这种情况下,我们需要升级PHP版本或降低MySQLi扩展的版本。我们可以通过检查PHP和MySQLi扩展版本来确认版本兼容性问题。我们可以使用以下命令在命令行上查看PHP和MySQLi的版本:
php -v
php -i | grep mysqli
解决以上两个原因之后,我们就可以成功地连接MySQL数据库并使用mysqli_connect()函数了。
解决80端口占用Identify and stop the process that‘s listening on port 80 or configure this application
11004
this web application instance has been stopped already. Could not load [org.apache.zookeeper【端口问题】
解决80端口占用Identify and stop the process that‘s listening on port 80 or configure this application
weixin_45436050:
WPS如何设置快捷键|为设置颜色添加快捷键
desperate_man:
WPS如何设置快捷键|为设置颜色添加快捷键
Cyclo-:
WPS如何设置快捷键|为设置颜色添加快捷键
Cyclo-:
Vue使用el-table-column 状态码转文字显示 v-if
Issac-Clarke: