为什么80%的码农都做不了架构师?>>>   

解决 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)查看评论

转载于:https://my.oschina.net/hosser/blog/711608

解决 The mysql extension is deprecated and will be r相关推荐

  1. php解决 mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysq

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. The mysql extension is deprecated and will be removed i ...

  2. PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法

    来源:http://www.jb51.net/article/54465.htm 这篇文章主要介绍了PHP提示Deprecated: mysql_connect(): The mysql extens ...

  3. mysql5.5提示Deprecated: mysql_query(): The mysql extension is deprecated

    解决方法1:在php程序代码里面设置报警级别 <?php error_reporting = E_ALL & ~E_DEPRECATED 方法2:禁止php报错 display_erro ...

  4. 织梦mysql占用资源_解决一个 MySQL 服务器进程 CPU 占用 100%的技术笔记

    早上帮朋友一台服务器解决了Mysql cpu 占用 100%的问题.稍整理了一下: 朋友主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程 (mysq ...

  5. 【解决】MySql 5.6 运行崩溃错误

    [解决]MySql 5.6 运行崩溃错误 最近弄了一台云主机,配置是20G磁盘空间,1G运行内存的Linux服务器.在上面安装了LAMP(RHEL7.2+Apache2.4+MySql5.6+PHP5 ...

  6. Yii2 解决2006 MySQL server has gone away问题

    Yii2 解决2006 MySQL server has gone away问题 参考文章: (1)Yii2 解决2006 MySQL server has gone away问题 (2)https: ...

  7. 解决linux mysql命令 bash: mysql: command not found 的方法

    解决linux mysql命令 bash: mysql: command not found 的方法 参考文章: (1)解决linux mysql命令 bash: mysql: command not ...

  8. 解决安装mysql的”A Windows service with the name MySQL already exists.“问题

    解决安装mysql的"A Windows service with the name MySQL already exists."问题 参考文章: (1)解决安装mysql的&qu ...

  9. 解决启动mysql.exe闪退问题

    解决启动mysql.exe闪退问题 参考文章: (1)解决启动mysql.exe闪退问题 (2)https://www.cnblogs.com/0901-hcx/p/11571826.html 备忘一 ...

最新文章

  1. 27亿参数的「野生版」GPT-3开源,GitHub项目2.9K Star量
  2. 沉浸式5G实景、AI+AR体验、机器人互动|5G+数智化展馆广州开幕
  3. 用java调用oracle存储过程总结一
  4. 大数据如何预测上市公司的业绩?
  5. FastReport.net 使用记录
  6. php中的空转为什么意思,php 长期更
  7. SIRIM上海,http://www.sirim-global.com
  8. git配置中文乱码_解决git中文乱码问题
  9. 在集设浏览学习高水准海报设计,会带给你不一样的灵感!
  10. 服务器维护经验分享,医院IT运维经验分享.pdf
  11. HDU 4336:Card Collector 期望+状压
  12. js对象深拷贝的简单实现
  13. 拜托,面试别再问我堆(排序)了!
  14. 多臂老虎机(Multi-armed Bandit)MAB学习笔记
  15. 如何把android studio中的项目发布到手机上(超详细版)
  16. 苹果iOS越狱后没有声音的解决办法
  17. 这样的测试简历,面试官都喜欢
  18. 二维码制作方法有什么?看完这篇你就会了
  19. 东方博宜oj答案c++版
  20. java变量重名问题

热门文章

  1. B树,B+树,B-树和B*树
  2. 使用SDL打造游戏世界之入门篇 - 1
  3. OpenCV 【十】——Gamma校正 ——图像灰度变化
  4. 四层和七层负载均衡的区别
  5. Redis源码分析--lookupKey函数查看value值
  6. Python实现决策树(Decision Tree)分类
  7. GDAL中GDALDataset::RasterIO分块读取的实现
  8. 图像处理和图像识别中常用的CxImage函数
  9. php多线程查表,php curl_multi 多线程查询的例子
  10. Java学习总结:51(对象序列化)