php - 为什么我不应该在PHP中使用mysql_ *函数?

标签 php mysql database

想要改善这篇文章吗?提供此问题的详细答案,包括引文和为什么您的答案正确的解释。答案不够详细的答案可能会被编辑或删除。
                            
                        
                    
                
                            
                    
为什么不应该使用mysql_*函数的技术原因是什么? (例如mysql_query()mysql_connect()mysql_real_escape_string())?

即使我的网站上可以使用,我为什么还要使用其他内容?

如果他们在我的网站上不起作用,为什么我会收到诸如


  警告:mysql_connect():没有这样的文件或目录

最佳答案

MySQL扩展:


没有积极发展
从PHP 5.5(2013年6月发布)开始正式为deprecated
完全自removed始于PHP 7.0(2015年12月发布)


这意味着从31 Dec 2018开始,它在任何受支持的PHP版本中都不存在。如果使用的PHP版本支持该版本,则使用的版本不会解决安全问题。

缺少OO接口
不支持:


非阻塞异步查询
Prepared statements或参数化查询
储存程序
多条陈述
交易次数
“新”密码验证方法(默认情况下在MySQL 5.6中为启用;在5.7中为必需)
MySQL 5.1或更高版本中的任何新功能



由于不建议使用,因此使用它会使您的代码不再适用于将来。

缺少对准备好的语句的支持特别重要,因为它们提供了一种比使用单独的函数调用手动转义更清晰,更少出错的转义和引用外部数据的方法。

请参见the comparison of SQL extensions

关于php - 为什么我不应该在PHP中使用mysql_ *函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56975838/

相关文章:

php - 在结帐页面上更改送货方式时会触发哪种方法或操作 Hook ?

php - 在php中的url中传递变量

php - 从表中插入一些列值,有些是手动插入的

mysql - Datamapper ORM-Codeigniter 高级关系

android - 远程数据库帮助类

sql - 备份远程 SQL Server 2005

mysql - 选择最后一个值并与同一个表连接

php - CakePHP Auth 组件不反射(reflect)用户数据的更改

javascript - 遍历 DIV 元素并获取动态添加的文本输入 - PHP

php - 将 phpmyadmin 保留为默认用户/密码有什么不安全之处