php - 在 php 5.3 版本上将 mysql 类转换为 mssql 类

标签 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);
    $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;
        }

}

我可以使用哪个驱动程序或轻松更改它们? 谢谢建议

最佳答案

这正是 PDO 等数据库抽象的用途。如果您需要支持多个数据库平台,您应该考虑使用这样的抽象。

或者,您可以构建自己的抽象,例如使用基于 mysql 或 mssql 的不同类,这些类实现公共(public)接口(interface)或从公共(public)父类继承。

关于php - 在 php 5.3 版本上将 mysql 类转换为 mssql 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23257361/

相关文章:

php - mysql_fetch_array 不返回任何内容,而 mysql_num_rows 在 php 中返回 4

sql - 一个查询而不是四个 - 这可能吗?

SQL Server 将 varbinary 转换为字符串

java - 如何为 linux (fedora) 安装 Microsoft SQL Server?

sql-server - XPath 查询在在线 XPath 测试器中运行良好,但在 SQL Server 中却不行

php - 使用 php 和 ffmpeg 转换视频

javascript - 如何使用 onclick 填写多个输入表单

php - 通过连接查询仅从多个表获取列名

javascript - 数据库日期和今天日期之间的差异

用于上传文件的 php 已调用,但文件未存储