微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 PHP7.4 迁移到 PHP8.0 后数据库连接不起作用

如何解决从 PHP7.4 迁移到 PHP8.0 后数据库连接不起作用

也许你可以帮助我。我尝试从 PHP7.4 迁移到 PHP8.0,但我的数据库连接无法正常工作。在 PHP7.4 中它可以与 PHP8.0 一起使用。

不会再以这种方式建立数据库连接了。

你有什么想法吗?

连接代码

$db = new sql_db($dbhost,$dbuser,$dbpasswd,$dbname,false);
if(!$db->db_connect_id)
{
    message_die(CRITICAL_ERROR,"Could not connect to the database");
}

背后的作用:

function sql_db($sqlserver,$sqluser,$sqlpassword,$database,$port = false,$persistency = false)
        {
            $this->persistency = (version_compare(PHP_VERSION,'5.3.0','>=')) ? $persistency : false;
            $this->user = $sqluser;
            
            $this->password = $sqlpassword;
            $this->server = ($this->persistency) ? 'p:' . (($sqlserver) ? $sqlserver : 'localhost') : $sqlserver;
            
            $this->dbname = $database;
            $port = (!$port) ? NULL : $port;

            $this->db_connect_id = @MysqLi_connect($this->server,$this->user,$this->password,$this->dbname,$port);
            
            if( $this->db_connect_id && $database != '')
            {
                @MysqLi_query($this->db_connect_id,"SET NAMES 'ISO-8859-1'");
                
                $this->dbname = $database;
                $dbselect = @MysqLi_select_db($this->db_connect_id,$this->dbname);

                if( $dbselect === false )
                {
                    @MysqLi_close($this->db_connect_id);
                    $this->db_connect_id = $dbselect;
                }


                return $this->db_connect_id;
            }
            else
            {
                return false;
            }
        }

解决方法

看起来您一直在依赖古老的、长期弃用的行为,即与类同名的方法充当构造函数。这种行为终于thrown out in PHP 8

与类同名的方法不再被解释为构造函数。应改用 __construct() 方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。