时间:2021-07-01 10:21:17 帮助过:13人阅读
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.com/manual/en/mysqlinf...
官方有说明
我觉得还有一点, 现代的语言针对db client库的实现都有统一的dbapi接口来规范, 而mysql_xxx系列函数本身就是php初混乱命名的产物
PHP5.6以上的版本已将mysql_connect等函数废弃了,也就是说旧的程序一旦升级到了PHP5.6以上的版本,PHP就无法和数据库连接,网站系统到处的错误信息,甚至首页都打不开!!!
据说是这种方式存在安全隐患,个人感觉更可能是php为了朝oop发展,推荐开发者使用面向对象方式编程的原因吧