1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

新闻 全堆栈 C 框架 CSpeed v2.1.8,新增数据库切换等特性 下载

Discussion in '软件资讯' started by 漂亮的石头, 2017-12-11.

  1. 漂亮的石头

    漂亮的石头 版主 Staff Member

    Joined:
    2012-02-10
    Messages:
    488,199
    Likes Received:
    47
    CSpeed v2.1.8 特性:

    1、配置文件变更:

    [db]
    db.mater.type = mysql ; 数据库类型,默认:mysql
    db.mater.host = localhost ; 数据库主机地址
    db.mater.port = 3306 ; 数据库端口
    db.mater.dbname = cspeed ; 数据库名称
    db.mater.username = cspeed ; 数据库用户名
    db.mater.password = cspeed ; 数据库密码

    新版本配置文件:

    [db]
    db.master.dsn = 'mysql:host=localhost;port=3306;dbname=supjos' ; 数据库类型,默认:mysql
    db.master.username = root ; 数据库用户名
    db.master.password = 3333 ; 数据库密码

    变更的主要原因在与使用PDO形式的dsn,能够更好的兼容各种数据库:Oracle、Pg、SqlServer等

    2、增加支持多数据库配置链接与切换:

    $di->set('db1', function(){ /* 省略任何参数表示从ini配置文件获取 */ return new \Cs\db\pdo\Adapter(); }); $di->set('db2', function(){ /* 省略的参数系统自动从ini配置文件获取 */ return new \Cs\db\pdo\Adapter([ 'dsn' => 'mysql:host=localhost;port=3308;dbname=product', 'username' => 'root', 'password' => 'root' ]); });

    如上配置了两个数据库链接,如果在使用模型的过程中需要进行切换,可以使用模型的方法:

    /* 表示当前模型操作```db2```数据库 */ $model->setDb('db2'); /* 表示当前模型操作```db1```数据库 */ $model->setDb('db1');

    更加方便的方式是在模型的构造函数中使用本方法:

    <?php namespace app\models; class User extends \Cs\mvc\Model { public function __construct() { $this->on(User::EVENT_BEFORE_SAVE, [$this, 'beforeSave']); $this->setDb('db2'); } function beforeSave() { echo "BeforeSave <br>"; } public function tableName() { return 'www_product'; } }

    注意:\Cs\db\pdo\Adapter类本身就表示一个数据库链接,故\Cs\db\pdo\Adapter不支持数据库切换,用户可以直接使用\Cs\db\pdo\Adapter进行数据库的操作,CSpeed引擎的\Cs\mvc\Model本身就是基于\Cs\db\pdo\Adapter进行的二次封装.

    可以直接使用 \Cs\db\pdo\Adapter 分别操作数据库:

    $db1 = $this->di->get('db1'); $db1->query('UPDATE xxx FROM xxx SET xx=xx'); $db1->execute();

    或者使用预处理:

    $db1 = $this->di->get('db1'); $db1->query('UPDATE xxx FROM xxx SET xx=?', [99]); /* 或者如下的绑定名 */ $db1->query('UPDATE xxx FROM xxx SET id=:id', [‘id’ => 99]); $db1->execute();
    全堆栈 C 框架 CSpeed v2.1.8,新增数据库切换等特性下载地址
     
Loading...