PHP MySQL功能的未来

时间:2012-12-16 15:50:07

标签: php mysql pdo mysqli deprecated

根据PHP.net网站的说法,从PHP 5.5开始,不推荐使用MySQL扩展。鉴于使用MySQL的PHP​​网站数量众多,我想知道使用MySQL的现有网站的最佳实践是什么。您是否可以在支持MySQL的PHP​​版本上稳定您的网站?或者承担迁移到另一个数据库扩展的成本和时间承诺?

5 个答案:

答案 0 :(得分:6)

如果您有开发时间,那么我强烈建议您迁移到PDO或MySQLi。这些扩展将由PHP小组维护和正式支持。

如果您的应用程序非常稳定且安全,那么我将禁用5.5将生成的警告。当删除扩展时,我确信它仍将作为PECL扩展存在,然后我将包括。

答案 1 :(得分:4)

不推荐使用MySQL扩展,而不是整个MySQL支持。 PHP目前正试图推出新的MySQLi扩展作为替代品:

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

MySQLi改进了旧函数,允许您以程序方式(如前所述)或使用对象执行MySQL函数。

答案 2 :(得分:4)

  

我想知道使用MySQL的现有网站的最佳做法是什么。

这个很容易回答。
应用程序代码中根本不应有Mysql(以及Mysqli或PDO)函数 如果你正在使用像这样的原始API函数

$data   = array();
$name   = mysql_real_escape_string($_GET['name']);
$result = mysql_query("SELECT * FROM table WHERE name = '$name'");
while ($row = mysql_fetch_row($result)){   
    $data[] = $row;
}

然后你必须立即开始重写你的代码,使用一些数据库包装而不是直接原始API调用,使它看起来像这样:

$data = $db->getAll("SELECT * FROM table where name=?s",$_GET['name']); 

它不仅可以显着缩短和智能化您的代码,还可以将所有API调用放在一个库中,当PHP团队决定杀死另一个优秀的分机时,可以将其更改为任何新的API。

答案 3 :(得分:2)

正如PHP手册所述,http://php.net/manual/en/intro.mysql.php

  

自PHP 5.5.0起,此扩展程序已弃用,不建议使用   用于编写新代码,因为它将来会被删除。代替,   要么使用mysqli,要么使用PDO_MySQL扩展名。另见   MySQL API概述在选择MySQL API时提供进一步的帮助。

你应该使用mysqli。

答案 4 :(得分:1)

如果您要离开mysql,请不要选择MySQLi,而是选择 PDO

请参阅 mysqli or PDO - what are the pros and cons?

我认为:PDO> MySQLi> MySQL的。

一些PDO专业人士: