在PHP5.3版本上将mysql类转换为mssql类

在PHP5.3版本上将mysql类转换为mssql类,php,mysql,sql-server,pdo,sqlsrv,Php,Mysql,Sql Server,Pdo,Sqlsrv,在我的项目中,我们使用了mysql。但现在客户希望使用mssql。我搜索,我们使用PDO或sqlsrv类。但是我不能决定哪一个适合我们的项目,或者很容易改变这个web应用程序的结构 我的代码示例 class sql { public $oci; public $rs; public $temp; public function __construct() { $this->oci = new mysqli(DBHOST, DBUSER, DBPASS,DBNAME);

在我的项目中,我们使用了mysql。但现在客户希望使用mssql。我搜索,我们使用PDO或sqlsrv类。但是我不能决定哪一个适合我们的项目,或者很容易改变这个web应用程序的结构

我的代码示例

class sql  {

public $oci;
public $rs;
public $temp;

public function __construct() {

    $this->oci = new mysqli(DBHOST, DBUSER, DBPASS,DBNAME);
    $this->oci->set_charset('utf8');

    if (mysqli_connect_errno()) {

           printf('Sql baglantı sorunu. Hata Kodu :' . mysqli_connect_errno());

           exit();
    }
}


public function closeOCI() {

    $this->oci->close();
}

public function query($query) {

    $this->rs = $this->oci->query($query);
}
登录类扩展了sql类

class login extends sql {


        public function loginControl($user, $pass)
        {

          $dbHandle = new sql($dbhost, $dbUserName, $dbPassWord, $dbCntDBName);
          //echo "SELECT level, name FROM users WHERE uName='$user' and pWord='$pass' limit 0,1";
          $dbHandle->query("SELECT level, name FROM users WHERE uName='$user' and pWord='$pass' limit 0,1");
          $result = $dbHandle->rs->fetch_assoc();

        return $result;
        }
}

我可以使用哪个驱动程序或轻松地更改它们?
thanx advide

这正是像PDO这样的数据库抽象的目的。如果你需要支持多个DB平台,你应该考虑使用这样的抽象。
或者,您可以使用它构建自己的抽象,例如,可以使用基于mysql或mssql的不同类,这些类实现公共接口或从公共父类继承。

不需要多个DB。仅使用SQLServer2012或2008那么问题是什么,如何移植代码?如何使您的代码在将来针对这种由客户驱动的后端更改进行未来验证?您是否询问过客户是否希望您简单地移植代码或构建一个抽象,并向他们说明每种方法的优缺点?确切地说,客户使用另一个使用Sqlserver的应用程序,而客户希望我的应用程序和其他应用程序使用相同的数据库。我在Sqlserver上移植了数据,但还没有更改代码。顾客是政府的政客,总的来说,他们所说的,我们必须接受。有什么简单的方法可以适应吗?@SerdarAlkan无论哪种方法,你都必须更改你的代码,这就是为什么我问你想做什么,你的客户是否提供了任何关于他们是否希望你将其抽象出来或只是将你的代码移植到MSSQL的信息,或者你是否向他们推荐了你的方法。所以这真的不是一个很好的问题,因为这是一个基于观点的答案,如果没有你的代码库的完整背景,这里没有人可能会给出比你自己更有价值的观点。好的,我明白了。thanx的建议。但客户对技术和其他方面有任何想法。一般来说,不感兴趣的是如何修复、提供或解决问题。他们的兴趣是完成还是不完成。我必须移植,我必须使用一个。thanx againI不会有一个像您的登录类这样的类,它仅仅依赖于获得一个可以与数据库交互的类来扩展该DB类。那真的没有道理。相反,您可以考虑在实例化中将DB对象注入到类中。