Codeigniter需要PDO吗?

时间:2015-08-13 13:49:33

标签: php codeigniter mysqli pdo codeigniter-2

这是我最近面临的挑战,

我的客户端网站使用MSSQL数据库在Windows平台上使用Codeigniter框架开发。因此,每个文件都有一个直接的MSSQL查询来处理数据。

现在他们想要从MSSQL和Windows服务器迁移到MySQL和Linux服务器。我知道,我需要为数据库迁移做很多工作。

但是在那种情况下(我的假设),如果他们以前将PDO用作数据库层,那么我不需要在每个文件中更改查询以将MSSQL移动到MySQL。

是吗?

我对PDO的假设可能很愚蠢。但请你的建议在这种情况下会很棒。

2 个答案:

答案 0 :(得分:1)

你的假设是错误的。 PDO不是数据库抽象层,而只是数据库的接口。它不像Doctrine那样为你创建SQL。因此,每个使用不同方言的查询都需要重写。

但是,我认为这种哀叹没有任何意义。什么已经或将要做什么重要?做了什么,你必须忍受它。

答案 1 :(得分:1)

不,CodeIgniter不需要PDO。实际上,CodeIgniter 2.x中的PDO支持有一个"实验"状态。

但是,如果您的客户端使用自定义编写的SQL查询而不是CI的查询构建器方法,则没有抽象层可以帮助您进行迁移。
PDO是一种低级抽象,为不同的数据库驱动程序提供通用的函数/方法名称(即PDOStatement::fetch()而不是每个数据库的不同函数名称);它没有处理SQL语法的差异。