文档章节

解决 The mysql extension is deprecated and will be r

hosser
 hosser
发布于 2016/07/14 11:27
字数 660
阅读 401
收藏 1

解决 The mysql extension is deprecated and will be removed in the future技术

maybe yes 发表于2015-07-27 15:19

原文链接 : http://blog.lmlphp.com/archives/132/Tutorial_of_solve_mysql_extension_is_deprecated_and_will_be_removed_in_the_future_of_php55  来自 : LMLPHP后院

PHP 5.5 默认是不支持 MySQL 扩展的,如果需要使用,可以使用 php5enmod mysql 打开。开启后使用 mysql_connect 的项目都会报错:[8192]mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in ... 。

PHP 核心开发组经过了很长时间的讨论,决定在 PHP5.5 版本后将 mysql_ 系列的函数标记为 deprecated,下面将给出如何解决这个问题的方法。

Why was mysql deprecated in PHP 5.5?
Johannes Schlüter, one of the PHP developers listed missing points like these:
Stored Procedures
Prepared Statements
(SSL-)Encryption
Compression
Full charset support

低级快速的解决方案:关闭 deprecated 类型的报错。特别提醒,过时报错使用 @ 符号是不能屏蔽的。

<?php
error_reporting(E_ALL ^ E_DEPRECATED);

更好的解决方案:修改数据库驱动类,使用 mysqli 系列函数代替 mysql 系列函数。

例如:当前许多 PHP 代码中 MySQL 的连接语句如下:

<?php
$link = mysql_connect('localhost', 'user', 'password');
mysql_select_db('dbname', $link);

将上面的语句修改为 MySQLI 连接,如下代码所示:

<?php
$link = mysqli_connect('localhost', 'user', 'password', 'dbname');

使用 mysqli 执行 SQL 的方式与 mysql 非常相似,如下示例:

<?php
// Old
mysql_query('CREATE TEMPORARY TABLE `lmlphp`', $link);
// New
mysqli_query($link, 'CREATE TEMPORARY TABLE `lmlphp`');

若在代码中使用了类似 mysql_result,mysql_fetch_array 等的函数,修改为对应的 mysqli_result,mysqli_fetch_array 即可。

除 了上面的解决方案外,也可以直接使用 PDO_MySQL 来操作数据库,个人感觉这个更好用。如果项目中的数据库驱动类是面向对象风格的,修改为 mysqli 会更加容易一些,使用 mysql_pdo 的代码风格完全不一样,切换过来比较困难。有点疑惑的是,为什么PHP 一定要放弃 MySQL 的扩展,而不通过改变函数内部实现来解决问题。

阅(453)评(0)查看评论

本文转载自:http://blog.lmlphp.com/archives/132/Tutorial_of_solve_mysql_extension_is_deprecated_and_will_be_r...

hosser

hosser

粉丝 191
博文 78
码字总数 4614
作品 3
徐汇
私信 提问
加载中

评论(0)

Deprecated: mysql_connect(): The mysql extension i

原因: php 5个版本,5.2、5.3、5.4、5.5,怕跟不上时代,新的服务器直接上5.5,但是程序出现如下错误:Deprecated: mysqlconnect(): The mysql extension is deprecated and will be removed...

june-映君
2014/04/27
2.4K
0
使用nginx配置多个php fastcgi负载均衡

使用nginx配置多个php fastcgi负载均衡 服务器环境是一键安装包lnmpnginx 配置文件参考地址:http://blog.chinaunix.net/uid-26284395-id-3084491.html nginx 配置文件[root@cacti vhost]# c...

wjw555
2018/01/01
0
0
如何在PHP7中扩展mysql,先安装php7.2。后安装mysql

相对与PHP5,PHP7的最大变化之一是移除了mysql扩展,推荐使用mysqli或者pdomysql,实际上在PHP5.5开始,PHP就着手开始准备弃用mysql扩展,如果你使用mysql扩展,可能看到过这样的提示”Depre...

osc_umc1u4zk
2019/03/01
4
0
解决Notice错误,性能竟然提升了1000多倍!

先说PHP的deprecated错误的性能问题 最近刚刚完成了一个项目,在测试完基本功能后,我们就发布到线上。结果上线不久就发现产生了大量的错误,如下图: 一看都是PHP的Deprecated错误,是级别最...

OneAPM蓝海讯通
2015/06/09
273
0
PHP链接mySQL问题!!!!!!!!!(菜鸟,急啊!)

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\AutoSet9\public_html\db_info.php on line 3 "链接......

luxury515
2015/09/17
443
10

没有更多内容

加载失败,请刷新页面

加载更多

zookeeper实现分布式锁总结,看这一篇足矣(设计模式应用实战)

zk实现分布式锁纵观网络各种各样的帖子层出不穷,笔者查阅很多资料发现一个问题,有些文章只写原理并没有具体实现,有些文章虽然写了实现但是并不全面 借这个周末给大家做一个总结,代码拿来...

osc_75pcgicm
57分钟前
20
0
163邮箱配置imap和smtp,隐藏的设置

http://config.mail.163.com/settings/imap/index.jsp?uid=XXXXX@163.com,这是一个隐藏的设置,要到这里配置才能用163的imap或者pop...

bengozhong
58分钟前
22
0
Python可变对象和不可变对象

Python中一切皆对象,每个对象都有其唯一的id,对应的类型和值,其中id指的是对象在内存中的位置。根据对象的值是否可修改分为可变对象和不可变对象。其中, 不可对象包括:数字,字符串,t...

osc_pnyuctmm
59分钟前
20
0
数据库垂直拆分 水平拆分

1 数据库拆分 当我们使用读写分离、缓存后,数据库的压力还是很大的时候,这就需要使用到数据库拆分了。 数据库拆分简单来说,就是指通过某种特定的条件,按照某个维度,将我们存放在同一个数...

努力的学渣
今天
28
0
微信小程序连接低功率蓝牙控制单片机上硬件设备

1.软件部分介绍   微信小程序是一种新的应用,用户不需要下载应用只用通过扫二维码或者打开链接就能使用,使用完后不需要卸载,直接关闭就行了。微信在2017年初推出微信小程序开发环境。任...

osc_uxgfefy0
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部