为什么在php不推荐使用mysql_*的函数?
比如说(mysql_query(), mysql_connect() or mysql_real_escape_string())?
回答1
因为Mysql在拓展:
- 不是积极的开发
- 在PHP5.5中已经被废弃了
- 在PHP7中已经被全部移出了
- 缺少OO(面向对象)的接口
并不支持以下:
- 非堵塞、异步查询
- 预处理语句和参数化查询
- 存储过程
- 多个声明
- 事务处理
- “新的”密码验证方法
- 所有Mysql5.1的功能
回答2
PHP提供了多种api来连接Mysql,有mysql、mysqli、pdo。
mysql_*方法曾经非常流星,但再也不鼓励使用了。文档团队目前关注数据库安全问题,并且教育用户停止当前普遍使用的mysql系列函数。
为什么?
其实不仅仅是从安全方面考虑,也是为了更好的去访问所有mysql数据哭的功能。
ext/mysql 建立于mysql3.23,从此之后有很少的改变。