在这个 php 配置中是不是启用了 mysqli 扩展?

Posted

技术标签:

【中文标题】在这个 php 配置中是不是启用了 mysqli 扩展?【英文标题】:Is mysqli extension enabled in this php configuration?在这个 php 配置中是否启用了 mysqli 扩展? 【发布时间】:2011-09-11 05:23:47 【问题描述】:

我有一个用 php 设计的网站,带有 mysqli(mysql - 改进)扩展名。 phpinfo() 页面显示如下:

./configure --disable-fileinfo --disable-phar --enable-bcmath --enable-calendar --enable-ftp --enable-gd-native-ttf --enable-libxml --enable-magic -quotes --enable-mbstring --enable-pdo=shared --enable-soap --enable-sockets --enable-wddx --enable-zend-multibyte --enable-zip --prefix=/usr --with -bz2 --with-curl=/opt/curlssl/ --with-curlwrappers --with-freetype-dir=/usr --with-gd --with-imap=/opt/php_with_imap_client/ --with-imap- ssl=/usr --with-jpeg-dir=/usr --with-kerberos --with-libdir=lib64 --with-libexpat-dir=/usr --with-libxml-dir=/opt/xml2 -- with-libxml-dir=/opt/xml2/ --with-mcrypt=/opt/libmcrypt/ --with-mysql=/usr --with-mysql-sock=/var/lib/mysql/mysql.sock -- with-mysqli=/usr/bin/mysql_config --with-openssl=/usr --with-openssl-dir=/usr --with-pcre-regex=/opt/pcre --with-pdo-mysql=shared - -with-pdo-sqlite=shared --with-pic --with-png-dir=/usr --with-pspell --with-sqlite=shared --with-tidy=/opt/tidy/ --with- xmlrpc --with-xpm-dir=/usr --with-xsl=/opt/xslt/ --with-zlib --with-zlib-目录=/usr

这是否意味着在此配置中启用了 mysqli 扩展?

【问题讨论】:

【参考方案1】:

如果mysqli 扩展被启用,那么在同一个phpinfo 页面上应该会出现一个“MysqlI Support | enabled”表头。寻找那个:


如果您想在脚本中查找,请查找特定于 mysqli 的函数,例如 mysqli_connect(),然后检查它是否存在:

var_dump(function_exists('mysqli_connect'));

如果输出 FALSE,那么它不存在,你很可能无法使用该模块。

【讨论】:

是的,有一个部分标记为“mysqli”,就像您提供的表格的屏幕截图一样。所以这确实意味着我可以安全地将我的脚本迁移到这个特定的虚拟主机上,并且 mysqli 函数可以正常工作,对吧?谢谢。【参考方案2】:

这意味着它是在 mysqli 支持下编译的。该模块是否启用是另一个问题。

【讨论】:

cartwright - 请帮助我理解(我在这里完全是新手)。我在原始问题中粘贴的是我提议的 WEBHOST 的 phpinfo() 页面的“配置命令”部分。如果我将我的 php 脚本(具有 mysqli 命令)迁移到这个特定的虚拟主机,它会正常工作吗?谢谢! 如果你已经有一个 phpinfo() 结果,然后搜索单词“mysqli”。您应该会看到一个部分概述了您的 mysqli 模块的所有详细信息。 我刚刚描述的内容是@maria 提供的屏幕截图,仅供参考。 是的,@约翰·卡特赖特。我在 phpinfo() 页面中看到了 mysql 和 mysqli 的部分。另一个疑问,我在某处读到,在共享托管服务的情况下,只有其中一个 - mysqli 或 mysql - 将被启用(或激活)。但是我的这个 phpinfo 页面显示了这两个部分。我是在这里搞砸了基础知识,还是虚拟主机实际上向我展示了一个专用的服务器 phpinfo 页面? 同时启用 MySQL 和 MySQLi(在共享主机或专用主机上)非常好。我假设您所阅读的内容可能是在某些共享环境中释放资源的情况,但没有什么能阻止您拥有 2、3、100 等数据库。

以上是关于在这个 php 配置中是不是启用了 mysqli 扩展?的主要内容,如果未能解决你的问题,请参考以下文章

无法启用 mysqli 扩展 - PHP 7.1.12,无法连接到数据库

如何在 PHP 7 中启用 MySQLi 扩展?

如何在 XAMPP 上启用 mysqli?

php安装缺少mysqli扩展的原因及解决方法

使用嵌入在 Windows 7 上的 MySQLi 编译 PHP

PHP 更改为 mysqli。 mysqli_connection 不是全局的吗?