【问题标题】:"Call to undefined function mysql_connect()" after upgrade to php-7 [duplicate]升级到 php-7 后“调用未定义函数 mysql_connect()”[重复]
【发布时间】:2016-03-09 09:18:30
【问题描述】:

php5 升级到 php7 后,我收到错误 500

PHP 致命错误:未捕获错误:调用未定义函数 mysql_connect()

为了立即获取 php7,我将其放入我的 apt 资源中:

deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

我基本上做的是:

apt-get remove php5
apt-get install php7-*

我正在使用当前版本的 Debian Jessie。

但我仍然明白这一点。这里有很多关于 SO 的问题,我肯定都检查过了。但我还没有找到答案。

【问题讨论】:

  • MYSQL 已从 5.5 中弃用,并在 PHP 7 中完全删除。有 MYSQLi 和 PDO 库来连接 mysql。2-3 年是将所有旧应用程序迁移到新的无 MYSQL 的时期方式..
  • 在迁移文档中,它告诉您mysql_ 已被删除。此外,几年来,整个 SO 都在为这种移除而尖叫。不再有这样的功能,你不能使用它们。如果您的项目依赖它,请恢复为支持它的 php 版本。
  • 我认为在尝试迁移到 PHP7 之前,您需要阅读和消化 PHP7 release notes 以及 Migration notes。它现在是一个非常不同的野兽
  • 为什么所有的反对票?这家伙问了一个合理的问题,并得到了合理的答案!
  • 您可以手动安装 mysql 扩展,它适用于 PHP7 - 请参阅 github.com/php/pecl-database-mysql

标签: php debian php-7


【解决方案1】:

来自PHP Manual

警告 此扩展在 PHP 5.5.0 中已弃用,并已被删除 在 PHP 7.0.0 中。相反,MySQLi 或 PDO_MySQL 扩展名应该是 用过的。另请参阅 MySQL:选择 API 指南。此功能的替代方案包括:

mysqli_connect()

PDO::__construct()

使用MySQLiPDO

<?php
$con = mysqli_connect('localhost', 'username', 'password', 'database');

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 2020-01-19
    • 2016-03-15
    相关资源
    最近更新 更多