目次

04 Doctrine

下記のように宣言しておく。

$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メソッドの添字

PDO::FETCH_ASSOC連想添字(DBキー名)
PDO::FETCH_NUM数値添字
PDO::FETCH_BOTH両方(デフォルト)

PDOについて

pdo_mysql

PDOは「PHP Data Objects」の略で、どのデータベースを使っているかを隠蔽してくれるものです。
PDOを使うことで、どのデータベースを利用する場合でも同じ関数を使うことができますので、
もし将来データベースを変更することがあっても、PDOオブジェクトを作成する時に指定したパラメータだけを変更するばいいことになります。