首页  >  文章  >  后端开发  >  为什么不推荐在PHP中使用诸如"mysql_xxx()"的函数

为什么不推荐在PHP中使用诸如"mysql_xxx()"的函数

WBOY
WBOY原创
2016-06-06 20:51:271067浏览

今天,看到有人说不要再使用php的mysql_connect(), mysql_query()等函数了。
但是,我看到很多书籍教程里都用这种方法。
那么,为什么突然就不建议了呢?是基于什么技术背景考虑的呢?
不用这种方法,那应该选择哪种方法呢?

回复内容:

今天,看到有人说不要再使用php的mysql_connect(), mysql_query()等函数了。
但是,我看到很多书籍教程里都用这种方法。
那么,为什么突然就不建议了呢?是基于什么技术背景考虑的呢?
不用这种方法,那应该选择哪种方法呢?

难道是受到PDO及MySQLi的影响?

php也确实推荐过不要使用mysql_xx来连接MySQL数据库。推荐PDO、MySQLi来连接管理MySQL。

PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论你使用什么数据库,你都可以通过一致的函数执行查询和获取数据。注意,你并不能使用PDO扩展本身执行任何数据库操作,你必须使用一个database-specific PDO driver(针对特定数据库的PDO驱动)访问数据库服务器。
PDO并不提供数据库抽象,它并不会重写SQL或提供数据库本身缺失的功能,如果你需要这种功能,你需要使用一个更加成熟的抽象层。
PDO随PHP5.1发行,在PHP5.0的PECL扩展中也可以使用。PDO需要PHP5核心OO特性的支持,所以它无法运行于之前的PHP版本。

mysqli是PHP对mysql新特性的一个扩展支持。在PHP5中可以在php.ini中加载
mysql后面的i,指improved, interface, ingenious, incompatible or incomplete
-可以和mysql_xxxx一样的方式使用
-支持OO接口,简简单单调用
-支持MYSQL4。1引入的新特性
-通过mysqli_init() 等相关函数,可以设置高级连接选项

http://www.php.net/manual/en/mysqlinf...

官方有说明

我觉得还有一点, 现代的语言针对db client库的实现都有统一的dbapi接口来规范, 而mysql_xxx系列函数本身就是php初混乱命名的产物

PHP5.6以上的版本已将mysql_connect等函数废弃了,也就是说旧的程序一旦升级到了PHP5.6以上的版本,PHP就无法和数据库连接,网站系统到处的错误信息,甚至首页都打不开!!!

据说是这种方式存在安全隐患,个人感觉更可能是php为了朝oop发展,推荐开发者使用面向对象方式编程的原因吧

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn