我正在创建一个应用程序,我想在 MySQL 或 SQL Server 上运行(不是同时运行)我创建了两个 PHP 类 DatabaseMySQL 和 DatabaseSQLSVR,我希望我的应用程序知道哪个数据库类根据安装时设置的常量使用。
定义(DB_TYPE,“mysql”);//或“sqlsrv”
我正在尝试思考处理这个问题的最佳方法。我的想法是在实例化数据库的任何地方执行“if else”:
$db = (DB_TYPE == "mysql") ?新的DatabaseMySQL:新的DatabaseSQLSVR;
我知道必须有更好的方法来做到这一点。假设我稍后想添加第三种数据库类型;我必须去重做我的所有代码。
最佳答案
用最简单的术语来说:
使用define将'DB_TYPE'定义为YourFullyQualifiedClassName,然后...
define('DB_TYPE', 'DatabaseMySQL') // or DatabaseSQLSVR or ...
$myDBType = DB_TYPE;
$db = new $myDBType();
关于php - MySQL 或 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3033398/