Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP7中启用MySQLi扩展?_Php_Mysql_Mysqli_Php 7 - Fatal编程技术网

如何在PHP7中启用MySQLi扩展?

如何在PHP7中启用MySQLi扩展?,php,mysql,mysqli,php-7,Php,Mysql,Mysqli,Php 7,我已经在Ubuntu14.04(Trusty Tahr)上安装了PHP7和MySQL 5.5.47 我已使用以下方法检查已安装的扩展: sudo apt-cache search php7-* 它输出: php7.0-common - Common files for packages built from the PHP source libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2

我已经在Ubuntu14.04(Trusty Tahr)上安装了PHP7和MySQL 5.5.47

我已使用以下方法检查已安装的扩展:

sudo apt-cache search php7-*
它输出:

php7.0-common - Common files for packages built from the PHP source
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-dbg - Debug symbols for PHP7.0
php7.0-curl - CURL module for PHP
php7.0-enchant - Enchant module for PHP
php7.0-gd - GD module for PHP
php7.0-gmp - GMP module for PHP
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-readline - readline module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php7.0-xsl - XSL module for PHP
php7.0 - server-side, HTML-embedded scripting language (metapackage)
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP
php7.0-bz2 - bzip2 module for PHP
我也无法使用phpinfo()查看MySQLi扩展。如何在PHP7中启用/安装MySQLi扩展


这就是为什么我不能使用phpMyAdmin。它说“mysqli扩展丢失了。”

我找到了解决方案。我能够在php.ini中启用MySQLi扩展。我刚刚在php.ini中取消了这一行的注释:

extension=php_mysqli.dll
现在MySQLi运行良好。以下是Apache 2、PHP7和Ubuntu14.04环境中的
php.ini
文件路径:

/etc/php/7.0/apache2/php.ini

默认情况下,MySQLi扩展在PHP7中被禁用。

在Ubuntu中,您需要在位于/etc/php/7.0/apache2/php.ini的文件php.ini中取消注释这一行:


问题在于,用于将PHP连接到MySQL的包已被弃用(php5 MySQL)。如果您安装了新软件包

sudo apt-get install php-mysql
这将自动更新Apache和PHP7

sudo phpenmod mysqli
sudo service apache2 restart

  • phpenmod moduleName
    启用模块到PHP7(在该
    sudo服务apache2重启之后重新启动Apache
  • phpdismodulename
    禁用PHP7的模块(之后重启Apache
    sudo服务apache2重启
  • php-m
    列出了加载的模块
    • 让我们使用

      mysqli_connect
      
      而不是

      mysql_connect
      

      由于Ubuntu上的PHP7

      不支持
      mysql\u connect
      ,因此当mysqli丢失时,请执行以下操作:

      sudo apt-get install php7.x-mysqli
      
      sudo service apache2 restart
      
      用PHP版本替换
      7.x

      注意:这可能是7.0或更高版本,但例如Drupal建议使用PHP7.2,这是出于安全考虑

      要检查PHP版本,请在命令行类型上:

      php -v
      
      如果缺少mbstring,则执行完全相同的操作:

      apt-get install php7.x-mbstring
      
      service apache2 restart
      

      我最近在(Xenial Xerus)上将PHP从7.0升级到7.2时,不得不为phpMyAdmin这样做。

      对于所有docker用户,只需在PHP容器中运行
      docker PHP ext install mysqli


      更新:关于“如何安装更多PHP扩展”一节中的更多信息。

      如果docker在按照
      docker PHP ext安装mysqli安装mysqli后安装了mysqli
      ,则应按照此答案重新启动fpm

      从集装箱内部

      kill -USR2 1
      


      php\u mysqli.dll
      适用于Windows。感谢我花了一段时间才让Wordpress安装运行,因为在php7中mysql\u*已被弃用,这很有帮助!谢谢,这在Win7中帮助了我!还必须取消注释
      extension\u dir
      指令。这是Ubuntu(16.04)的正确答案。之后重新启动apache:
      sudo服务apache2重新启动
      谢谢Xeno。这是Ubuntu(16.04)的有效答案,PHP7.1@scoobydoo是正确的。在此之后重新启动apache。作为警告。。。php mysql在几年前就被弃用了,php开发人员警告说,PHP7上的扩展将在几年内被删除。建议改用php mysqli。OP是Ubuntu,而不是windows。如果扩展不存在,取消对扩展声明的注释将没有任何好处<代码>apt get install php7.3-mysqli将在不安装的情况下进行处理。您可以通过创建一个只包含
      的web文件并搜索
      mysqli
      来发现这行代码不在Ubuntu 16.04的php.ini中。添加它?在ubuntu0.18.04.1Thanks中也很有效,这很有帮助。您能解释一下phpenmod的作用吗?得到警告:模块mysqli ini文件在/etc/php/7.1/mods下不存在-available@RobertSinclair你安装了
      php-mysql
      package吗?@Pipo就是这样,好的,谢谢!有人怎么能找到那条信息?!那上面有医生吗?你是我的英雄@Uchendu它实际上就在这里的PHP容器描述中——在“如何安装更多PHP扩展”一节中。我也花了很长时间才找到它。我已经更新了我的答案以包含这些信息,谢谢。不起作用。使用Synology DSM上的docker。@ErikThiart您是否使用上面链接中的官方php容器?还有,什么不起作用?该命令不存在,或者返回错误,或者包未安装?请提供更多细节。彼得·莫滕森,真的。。。你在换我的外壳。为了学分。。。
      kill -USR2 1