【问题标题】:Cannot get the mysql extension module to load for php 7.0?无法为 php 7.0 加载 mysql 扩展模块?
【发布时间】:2016-12-13 22:15:43
【问题描述】:

我正在 Php 7.0 / MySQL 5.5 上安装一个需要安装 Mysql 扩展的模板。

这是在 Ubuntu 14.04,MySql 版本 5.5,PHP 版本 7.0.7-4+deb.sury.org~trusty+1

目前,尽管已经安装了 mysql-server 和 mysql-client 和 php7.0-mysql ——这个先决条件安装代码仍然返回 false:

if(!extension_loaded('mysql')){$error = TRUE; echo " Mysql PHP 扩展丢失!";}else{echo " Mysql PHP 扩展已加载!";}

mysqli 安装成功,但由于某种原因,Php 没有看到 mysql 扩展,因此我无法继续安装。

在 phpinfo() 检查中也是如此——没有找到 MySQL 模块,而是有 pdo_mysql、mysqlnd 和 mysqi。当我检查活动的 php ini 文件(在 fpm 文件夹中)时,我没有那里也看不到任何明显的东西。

我需要安装或启用什么才能显示 Mysql 扩展?

【问题讨论】:

  • mysql 扩展已被弃用并从 PHP 7 中删除 ~ 来自手册 "Depending on the version of PHP, there are either two or three PHP APIs for accessing the MySQL database. PHP 5 users can choose between the deprecated mysql extension, mysqli, or PDO_MySQL. PHP 7 removes the mysql extension, leaving only the latter two options."

标签: php mysql ubuntu


【解决方案1】:

mysql 扩展名已弃用。见http://php.net/manual/en/mysql.php

您的选择是:

1) 切换到mysqliPDO。理想情况下是PDO,因为它支持准备好的查询,并且正在成为 PHP 社区的首选扩展。

2) 如果您有很多遗留代码,那么最好还是使用 PHP 5。

【讨论】:

  • mysqli_* 也支持准备好的查询。我建议尝试两者,它们都很好 - 各有优缺点。
  • mysql 扩展不仅被弃用——它在很久以前就被弃用了,并且在 PHP v7 中完全从语言中删除。
  • 嗯,这个模板仍然使用大约一千个 mysql_connect() 调用....所以我想我正在安装 php 5
【解决方案2】:

抱歉,mysql 扩展不在开发中。它自 PHP 5.5 起被弃用,并在 PHP 7.0 中被删除。

mysql 的父亲可以将mysql 改进到新的状态,但他们决定创建 MySQL 改进或mysqli

mysqlimysql 没有的新东西:

Support for asynchronous queries.
Stored procedures
Parameterized queries
Transactions
Better security model.

可能还有几个,但我现在想不起来了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    相关资源
    最近更新 更多