Silex:Doctrine的使用

DoctrineServiceProvider 提供了Doctrine DBAL的集成便于连接数据库。

使用composer添加库依赖:composer require “doctrine/dbal:~2.2”

1/参数

db.options:
    driver:数据库驱动,默认为pdo_mysql.
    dbname:数据库的名字
    host:要连接的数据库的主机,默认为localhost
    user:默认为root
    password:数据库密码
    charset:
    path:
    port:

使用过程:

#注册
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
    'db.options' => array(
        'driver'   => 'pdo_mysql',
        'path'     => __DIR__.'/app.db',
        'host'      => '127.0.0.1',
        'dbname'    => 'user_manage_system',
        'user'      => 'root',
        'password'  => '222',
        ),
    ));
#使用
$app->get('/user', function() use ($app) {
    $sql = 'SELECT * FROM users';
    $post = $app['db']->fetchAll($sql);
    var_dump($post);

    return new Response('');
    });

4/使用多个数据库
可以连接多个数据库,在注册时将db.options 改为dbs.options

#注册多个数据库
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
    'dbs.options' => array (
        'mysql_read' => array(
            'driver'    => 'pdo_mysql',
            'host'      => 'mysql_read.someplace.tld',
            'dbname'    => 'my_database',
            'user'      => 'my_username',
            'password'  => 'my_password',
            'charset'   => 'utf8mb4',
        ),
        'mysql_write' => array(
            'driver'    => 'pdo_mysql',
            'host'      => 'mysql_write.someplace.tld',
            'dbname'    => 'my_database',
            'user'      => 'my_username',
            'password'  => 'my_password',
            'charset'   => 'utf8mb4',
        ),
    ),
));

#使用
$app->get('/blog/{id}', function ($id) use ($app) {
    $sql = "SELECT * FROM posts WHERE id = ?";
    $post = $app['dbs']['mysql_read']->fetchAssoc($sql, array((int) $id));

    $sql = "UPDATE posts SET value = ? WHERE id = ?";
    $app['dbs']['mysql_write']->executeUpdate($sql, array('newValue', (int) $id));

    return  "<h1>{$post['title']}</h1>".
            "<p>{$post['body']}</p>";
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值