为什么不再推荐使用mysql扩展?

时间:2012-11-05 16:56:55

标签: php mysql prepared-statement

  

可能重复:
  Why shouldn’t I use mysql_* function in PHP?

我正在考虑在我的下一个PHP项目中使用Justin Vincent的ezSQL,我注意到它使用了mysql_connect。我知道不建议再使用PHP中的mysql_*函数。我已经看到了通过以下代码进行SQL注入攻击的网站的公平份额:

<?php mysql_qyery("SELECT * FROM my_table WHERE id = " . $_GET['id']); ?>

我知道PDO支持prepared statements,但您没有被迫准备语句,因此您仍然可以编写类似的不安全查询。

我想知道如果我在执行查询之前使用像exSQL这样的库来处理转义数据,那么我应该注意mysql_*函数是否存在任何内在的安全漏洞?

编辑:我不是在问我是否应该使用PDO / mysqli而不是mysql扩展,或者在将来的PHP版本中是否会删除mysql扩展。 PHP手册以及其他地方都可以找到这两个问题的答案。但是,由于为什么不鼓励使用mysql扩展,因此缺乏易于获得的文档。事实上,PHP手册对问题的回答"Why is the MySQL extension (ext/mysql) that I've been using for over 10 years discouraged from use? Is it deprecated? What do I use instead? How can I migrate?"实际上并不能解释为什么不鼓励它。

对于使用依赖旧的mysql扩展的库的开发人员来说,这是一个问题。仅仅因为不再支持扩展不会使这成为一个“无关紧要”的问题,因为仍然有很多库使用旧扩展。

1 个答案:

答案 0 :(得分:2)

这两个资源应该可以帮到你:

Advantages Of MySQLi over MySQL

http://php.net/manual/en/mysqli.overview.php

如果没有,您可以通过谷歌Google获取更多信息,因为这不是一个真正的问题。