用户
 找回密码
 入住 CI 中国社区
搜索
查看: 19078|回复: 12
收起左侧

[HELP] CI框架访问数据库类提示Call to undefined function mysqli_init()

[复制链接]
发表于 2015-9-14 16:31:46 | 显示全部楼层 |阅读模式
php.ini 已经需改了。但是还是报这个错
发表于 2015-9-22 01:14:34 | 显示全部楼层
是你的服务器安装php的时候没有编译mysqli模块,重新编译一下就好。另外别用mysql驱动了,因为php高版本已经去掉了这个模块,必须用mysqli或者pdo。
发表于 2018-3-5 18:32:51 | 显示全部楼层
        大家好,我曾经是ASP.NET MVC的开发者,现在是PHP,同时也是CodeIgniter框架的初学者和践行者,当时由于项目原因,我被迫给自己打满鸡血,满怀激情的选用Yii2,Lavarel5,CodeIgniter等PHP框架进行项目开发,同你一样被"Call to undefined function mysqli_init()"这个小问题折磨得挠头骚耳,找遍各大论坛依然找不到问题之所在,差点铩羽而归(当时我也按照论坛的提示做了,发现都没有用),好的屁话不多说,现在由我直入正题说一说解决方法,同时说一说当时我是怎么解决以上的问题的。
        如果你是安装WampServer 3.0.4作为集成开发环境的,当你安装完集成环境后,请自行检查一下 localhost/phpmyadmin 这个后台是否能打开,还是会报各种Fatal error,如果遇到Fatal error就只能说明一个问题,这个WampServer是坏的!!!,无论你后面怎么配置你的项目的dasebase.php文件都没用,而且更坑的是当时网页只显示Call to undefined function mysqli_init()这个问题,没有更多问题提示你该怎么做。
        直到我重装系统,后面选择安装phpstudy之后,发现我居然能打开phpmyadmin,于是我重新打开浏览器并输入项目URL,发现页面提示的错误又多了一些内容,例如
A PHP Error was encountered
        Severity: Warning
        Message: mysqli::real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO)
        Filename: mysqli/mysqli_driver.php....
        当时我也不知怎么的,自己又在网上搜索一下又参考《phpmyadmin安装及其配置》的文章后,发现自己项目中的database.php没有配置正确,当时我安装完集成开发环境之后,或许你跟我一样没有配置phpmyadmin,还以为phpmyadmin的账户是root,密码是空
        最后我将$db['default'] = array(...'username' => 'root','password' => '',...);改为$db['default'] = array(
...'username' => 'root','password' => 'root',...)
。重新打开浏览器并输入项目的URL,Success(成功)!!!
        总结:自己安装完集成开发环境后,请检查一下phpmyadmin后台程序是否能打开,还有请各位从其他编程语言乱入到PHP的小伙伴们要一定记住phpmyadmin的账户密码不为空,而是root!!!(也就是phpmyadmin的账户名为root,密码也为root)

        遇到上面的这个问题的人,俺掐指一算,发现有80%到90%的可能是由于你从其他编程开发语言开发得好好的,然而由于其他什么原因被直接乱入到PHP的,同我一样,自己不会逐个安装PHP,Apache和MySQL,而是直接选用,安装并使用诸如WampServer,apmserv、xampp、PHPWAMP等集成开发环境,哪知道集成开发环境背后隐藏如此之多的坑正等着可爱的你去进行解决。
         遇到Call to undefined function mysqli_init()这个问题或许你同我一样被折磨的日夜不休的,重燃自信心不知被浇灭了多少回,甚至重装系统后发现问题依然原封不同的保留在那里,当时气得我直摔键盘鼠标(因为电脑太贵),仰天长啸,甚至怀疑是不是由于平时自己对电脑太粗暴的问题。
         是的学编程不难,但难得是你要入门之前要进行各种各样,又奇形怪状,同时毁你自信心的配置安装操作,且由于时间紧迫要快速上手,(真心累哇。嗯嗯,我想说的是其实遇到困难不可怕,但遇到困难后,你发现人家给你的时间又不是很充足,同时自己总找不到问题解决方案,且后面有人一直在催你几点项目要发布哇,bala,bala,快点搞定,相信你的内心是崩溃的,正如 洛天依 的一首 未来程序员之歌 最后几句所说的一样 程序员苦逼呀,程序员苦逼呀,程序员苦逼呀,我是程序员呀...... )
         如果各位看到这个回复的伙伴们遇到Call to undefined function mysqli_init()这个问题还是解决不了,可以继续回复本贴,你我一同探究进步。
发表于 2018-3-6 14:56:51 | 显示全部楼层
        @sundogya,我这里没有引战的意思,这个“你的出现这个问题的原因,90%是你的mysql拓展没有开启,你可能是看了报错之后在php.ini里面改了,但是改了之后需要重启一下apache”的解决方案,之前我也弄过,但发现没有用,错误依然原封不动的摆在那里等你解决,
        我上次实践发现,安装在Win10 WampServer3.0.4集成环境,不仅打不开phpmyadmin会报错就算了,而且报错后又没提示那么解决,同时你打开php扩展配置发现,WampServer系统会出现 红色三角形加感叹号 的标志(也就是说WampServer环境加载不成功),同时你会发现WampSever中的Apache环境默认没有加载那个php.ini文件且还提示你是否要创建新的php.ini,然后我按照提示在apache服务器下新建php.ini,并将php7下的php.ini的配置信息复制到apache服务器中的php.ini中并打开了php_mysqli.dll扩展也没有用,CLI会一会儿提示你 There is no extersion in php extersion,最后发现WampServer本身的问题,因为你打不开phpmyadmin,所以你就没有发现phpmyadmin默认的账户和密码分别是root和root(也就是说phpmyadmin默认的帐户名是root,默认的密码也是root)
         所以说很多时候并不是我们自己的能力问题,当你使出浑身解数仍然都解决不了一个编程环境的事情时,你应考虑是不是软件本身的有问题,当然对于平时习惯使用 安装即用无需过多关心配置 的小伙伴们来说那是相当的棘手,就像最近我因项目要求,安装Android Studio来开发Android,其编程环境安装及其配置过程,那叫一个蛋疼和酸爽,在你安装AndroidStudio后,你新建一个项目并编译时,IDE会提示你要安装Gradle Build Tool,然后你打开官网安装Gradle Build Tool时,你不知Gradle安装包在哪里下载(因为没有安装包),费了好大劲找到Gradle安装指南时,Gradle官网会温馨提示你,在安装“我”之前,请以管理员身份操作CMD或PowerShell下载和配置Chocolatey,最后还要输入choco install gradle命令才给你安装完成,当你满心欢喜地以为Android Studio所有的开发环境配置都结束了时,你会发现你错了,你的Android Virual Environment还没有安装呢......
         当然,上面的操作各个官网可没有说的这么直白!!!同时,还要靠你本人自己边悟边操作。还有我想说的是咱们到人家官网转悠,人家官网写的是英语,同时我也发现人家各个官网普遍对咱们大中华地区都不友好,就以Django官网为例,人家官网有英文,俄文,日文,韩文,阿拉伯文等可选,唯独就没有咱们中文,任凭你求神拜佛信耶稣还有真主安拉,甚至叫人家爸爸,他们都好像爱理不理就是不开发中文页面,就算你用360浏览器和QQ浏览器的自带翻译软件,你看那翻译,每每地可以让你感受中午吃进去的东西在胃部翻滚的感觉,当你完成所有一系列的操作后,你说是不是即蛋疼又酸爽~~~
          其实我在这里并不是炫耀自己多多厉害,但我只想说现在搞开发的总体趋势由 原来的 [b]难(开发难,C/C++对于一般开发者来说要求很大) 到 易(随着应用场景的不同,各种各样的编程语言腾空出世,开发变容易了) 再到 易 到 难(开发变容易,但配置杂了也多了,前期操心的事和折腾的事也多了也入门难了),由于开发变容易,世界各地程序猿们和攻城师们怀着“让我们不用再重复造轮子直至解放双手“的“普渡众生”思想,开发出了各种各样怪异的程序包管理工具来方便我们。是的这没错,我们在开发的时候做的事少了,不用再为各种各样的费时间下载安装配置而烦心,开发效率也得到大幅度提升,但对于哪些刚入门的小师弟和小师妹来极大增加了入门成本,特别是做事没耐心同时英文水平一般甚至是无的,同时对编程开发又怀有极大热情的小师弟和小师妹来说就是当头一棒。
 楼主| 发表于 2015-9-14 16:32:06 | 显示全部楼层
这是报的错
QQ截图20150914162957.png
发表于 2015-9-14 16:59:09 | 显示全部楼层
本帖最后由 ci520 于 2015-9-14 17:01 编辑

你好    我也是刚刚学习,估计是你的文件配置有问题,请修改application\config文件夹里的“database.php”
找到“'dbdriver' => 'mysqli',”这一句,然后修改为:

'dbdriver' => 'mysql',

即:把 i 去掉,因为咱们用的都是mysql数据库。
希望对你有帮助,共同学习CI!
 楼主| 发表于 2015-9-14 17:50:44 | 显示全部楼层
ci520 发表于 2015-9-14 16:59
你好    我也是刚刚学习,估计是你的文件配置有问题,请修改application\config文件夹里的“database.php” ...

额  我的默认就是 mysql
发表于 2015-9-14 17:55:37 | 显示全部楼层
本帖最后由 ci520 于 2015-9-14 18:00 编辑
c81113418 发表于 2015-9-14 17:50
额  我的默认就是 mysql

可是你的这张截图,明明配置的就是使用 mysqli 哦。

来一张配置文件截图吧?
看我的测试:
配置文件为 mysqli 的截图:

001.jpg
报错的截图:
002.jpg


配置文件为mysql的截图:
003.jpg
正确读取到数据库:
004.jpg

看到效果了吧?
 楼主| 发表于 2015-9-14 19:25:10 | 显示全部楼层
ci520 发表于 2015-9-14 17:55
可是你的这张截图,明明配置的就是使用 mysqli 哦。

来一张配置文件截图吧?

恩  这些问题我都试过了  可能是服务器的问题吧  我给服务器重做系统了  还没安装环境呢 一会看看
发表于 2017-12-21 11:32:14 | 显示全部楼层

我和你有同样的错误,请问你解决了问题了吗?
发表于 2017-12-21 17:28:32 | 显示全部楼层
lypxbb 发表于 2017-12-21 11:32
我和你有同样的错误,请问你解决了问题了吗?

如果win下用的是集成环境,请开启php的PDO或者mysqli扩展。codeigniter中相应的数据库配置文件中的driver也改一下。php7以上默认不支持mysql扩展,请用pdo或者mysqli

本版积分规则