Doctrineについて

・Doctrineとは SQLを記述せずに、オブジェクト指向でデータベースを操作することが可能となるものです。   ・ORMとDBAL ORMは「Object Relational Mapping」の略で、関係データベース(RDB)とオブジェクト指向を繋げて直観的に操作することを目的としたものです。 DBALは「Database_ Abstraction Layer」の略で、抽象的な指示で動作を呼び出すことを目的としたものです。   ・queryBuilderの準備
$qb = $app['db']->createQueryBuilder();
・SELECT
$qb->select('カラム')->from('テーブル','エイリアス');

"SELECT カラム FROM テーブル エイリアス"
  ・INSERT
$qb->insert('テーブル');

"INSERT INTO テーブル VALUES()"
  ・UPDATE
$qb->update('テーブル');

"UPDATE テーブル"
  ・DELETE
$qb->delete('カラム')->from('テーブル','エイリアス');

"DELETE * FROM テーブル エイリアス"
  ・Join
$qb->leftJoin('エイリアス1', 'テーブル2', 'エイリアス2', 'エイリアス2.カラム = エイリアス1.カラム');

テーブル2 エイリアス2 ON エイリアス2.カラム = エイリアス1.カラム
  ・WHERE
$qb->andWhere(
 $qb->expr()->orx(
  $qb->expr()->like('カラム1', ':keyword' . keyword0),
  $qb->expr()->like('カラム2', ':keyword' . keyword1)
 )
);

WHERE ((カラム1 LIKE :keyword0) OR (カラム2 LIKE :keyword0)) AND ((カラム1 LIKE :keyword1) OR (カラム2 LIKE :keyword1))
  ・GROUP BY
$qb->groupBy('エイリアス.カラム');

GROUP BY エイリアス.カラム
  ・ORDER BY
$qb->orderBy('エイリアス.カラム', 'DESC');

ORDER BY エイリアス.カラム DESC(ASC)
  ・LIMIT, OFFSET
$qb->setMaxResults(3);

LIMIT 3

$qb->setFirstResult(0);

OFFSET 0
  ・VALUES
$qb->values(
 arrey(
  'name' => '?',
  'password' => '?'
 )
)
$qb->setParameter(0, $name)
$qb->setParameter(1, $password)
  ・setValues
$qb->setValue('name', '?')
$qb->setValue('password', '?')
$qb->setParameter(0, $name)
$qb->setParameter(1, $password)
 
カテゴリー: PHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です