在我的项目中,我们使用了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;
}
}
我可以使用哪个驱动程序或轻松更换它们?乙醇advide
这正是像PDO这样的数据库抽象的意义所在。如果您需要支持多个DB平台,您应该考虑使用这样的抽象。
或者,您可以使用构建自己的抽象,例如,可以使用基于mysql或mssql的不同类,这些类实现公共接口或从公共父类继承。