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