下記のように宣言しておく。
$app->register(new Silex\Provider\DoctrineServiceProvider(), array( 'db.options' => array( 'dbname' => 'データベース名', 'user' => 'データベースユーザ名', 'password' => 'パスワード', 'host' => '接続先ホスト', 'driver' => 'ドライバー', ), 'db.dbal.class_path' => __DIR__ . '/silex/vendor/doctrine', 'db.common.class_path' => __DIR__ . '/silex/vendor/doctrine' ));
後は$app['db']で利用できる。
$stmt = $app['db']->query('select * from test;'); while ($row = $stmt->fetch()) { print_r($row); }
PDO::FETCH_ASSOC | 連想添字(DBキー名) |
PDO::FETCH_NUM | 数値添字 |
PDO::FETCH_BOTH | 両方(デフォルト) |
PDOは「PHP Data Objects」の略で、どのデータベースを使っているかを隠蔽してくれるものです。
PDOを使うことで、どのデータベースを利用する場合でも同じ関数を使うことができますので、
もし将来データベースを変更することがあっても、PDOオブジェクトを作成する時に指定したパラメータだけを変更するばいいことになります。