从MYSQL到PDO Best Way

时间:2014-02-22 12:33:39

标签: php mysql pdo

正如这里建议的那样从mysql转换为PDO。我只是学习一切,但知道足够危险。下面是我的一些代码片段,并寻找从mysql>开始的最佳实践。 PDO。

function db_query($sql){
global $config;
if($config['debug']){
    echo $sql."\n";
}
$result = mysql_query($sql);
if(($config['debug'] || true) && ($myerr = mysql_error())){
    echo $myerr;
}
$rows = array();
if(!$result){ return $rows; }
while ($row = @mysql_fetch_array($result, MYSQL_ASSOC)) {
    $rows[] = $row;
}
@mysql_free_result($result);
return $rows; }


function get_p4p($where='1=1'){
return db_query ("SELECT * FROM `records` WHERE $where  ORDER BY `rec_order` "  );}

我已经成功转换了很多但是由于某种原因这让我很烦恼。对于这里的一些人来说这似乎是基本的,而且我希望的是...谢谢。

1 个答案:

答案 0 :(得分:0)

在我看来,没有简单而干净的方法可以从程序MySQL迁移到PDO。

PDO提供了一些新的强大功能,例如预准备语句,这些功能需要将查询与要插入查询的数据(例如,您要搜索的ID)分开。您当前的代码中没有这种分隔,因此您无法轻松更新功能以使用这些新功能。 您的SQL很可能也远离标准SQL。我没有看到迁移到PDO的明显优势,因为无论如何都无法切换到其他类型的数据库(如postgresql)。您唯一的好处是您的代码不再使用过时的功能。 进一步的PDO仅提供面向对象的接口。没有像你当前使用的程序功能。这使得迁移真的很烦人。

在我看来,迁移到PDO对现有的程序项目没有多大意义。这种迁移需要花费大量的精力,知识和测试,而您很可能不希望这样的旧项目。

您是否考虑过从MySQL扩展迁移到新的MySQL * i *扩展名? MySQLi提供了面向对象和程序接口。因此,界面的变化要小得多。 (基本上所有程序功能现在都需要连接作为第一个参数。) MySQLi确实提供了新功能(如预处理语句)。如果您愿意,可以使用它们。但你没必要。 总而言之,这使迁移变得更加容易。如果您将连接作为所有需要它的函数的第一个参数提供,那么您可能需要更改所有这些。

MySQLi将是我的方式。