Doctrine DBAL 메모
2017.10.27 02:18
몇년 지났지만, 간단하게 볼 수 있는 글이 있다.
https://www.thedevfiles.com/2014/08/simplifying-database-interactions-with-doctrine-dbal/
아니면 매뉴얼.
http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/index.html
/* Driver Manager 상속 - 안됨. */
use Doctrine\DBAL;
use Doctrine\DBAL\DriverManager;
/* DriverManager 클래스는 final 선언되어 상속이 안된다.
db 클래스를 별도로 만드는 경우 상속하지 말고 아래처럼 한다. */
class db
{
public static $instance;
public static function getInstance()
{
if (!isset(self::$instance)) {
self::$instance = DriverManager::getConnection([
'driver' => 'pdo_mysql',
'dbname' => 'mydbname',
'host' => 'localhost',
'user' => 'myusername',
'password' => 'mypassword',
'charset' => 'utf8',
'port' => 13306
]);
}
return self::$instance;
}
}
쿼리 빌더 사용시 생성된 SQL 확인
echo $que->getSql();
쿼리 빌더 실행 및 결과 취득
$que->execute()->fetchAll();
fetchAll 제외한 나머지 블라블라들은 쿼리빌더에 없는 메서드라고 나오던데 뭔 일인지는 잘 모르겠고,
블라블라는 아래 링크들을 참고한다.
http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html#using-prepared-statements
http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html#fetchall
select 과정은 아래와 같이 쿼리빌더를 먼저 준비 후, 실행
$que = $db->createQueryBuilder();
insert, update, delete 등은 쿼리빌더 준비 없이 $db 객체에서 바로 입력 후, 실행
$db->insert("테이블명", [데이터 배열]);
하거나 아니면 쿼리빌더에서 준비 후 select와 동일하게 트리거 시킴
DB 연결 종료
$db->close();
테이블 생성
$db = db::getInstance();
$sm = $db->getSchemaManager();
$table = new Doctrine\DBAL\Schema\Table("`${table_name}`");
$table->addColumn("id", "integer", array("length" => 11, "unsigned" => true, "null" => false));
$table->addColumn("name", "string", array("length" => 50));
$table->setPrimaryKey(array("id"));
$sm->createTable($table);
테이블 이름 변경
$db = db::getInstance();
$sm = $db->getSchemaManager();
$sm->renameTable("`${old_name}`", "`${new_name}`");
테이블 삭제
$db = db::getInstance();
$sm = $db->getSchemaManager();
$sm->dropTable("`${new_name}`");
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
21 | nginx site enable | 꿈돌이 | 2024.09.07 | 69 |
20 | slim routeplaceholder | 꿈돌이 | 2020.02.27 | 4285 |
19 | slim 4 , Intelephense | 꿈돌이 | 2020.01.17 | 361 |
18 | axios post로 데이터 안 넘어갈 때 체크할 거 | 꿈돌이 | 2018.10.24 | 661 |
17 |
윈도우에서 사설인증서로 https localhost 사용하기
![]() | 꿈돌이 | 2018.08.24 | 328 |
16 | php obfuscator | 꿈돌이 | 2018.01.31 | 266 |
15 | DB 순번 시퀀스 초기화 | 꿈돌이 | 2017.12.25 | 12969 |
14 | Vue.js td내 input 태그에서 v-for | 꿈돌이 | 2017.12.19 | 675 |
13 |
Vue Slim으로 카테고리 만들기
![]() | 꿈돌이 | 2017.11.10 | 297 |
» | Doctrine DBAL 메모 | 꿈돌이 | 2017.10.27 | 300 |
11 |
Vue Tree view with Single file component
![]() | 꿈돌이 | 2017.09.29 | 433 |
10 | PHP 내장 웹서버 띄우기 | 꿈돌이 | 2017.09.04 | 601 |
9 |
vue-slim-medoo boilerplate
![]() | 꿈돌이 | 2017.06.04 | 326 |
8 |
Vue boilerplate
![]() | 꿈돌이 | 2017.06.02 | 472 |
7 |
Slim boilerplates
![]() | 꿈돌이 | 2017.06.02 | 254 |
6 | Windows에서 Composer로 slim 설치하기 | 꿈돌이 | 2017.06.01 | 616 |
5 | 코드이그나이터 3.1.3에서 HMVC 오류 대응 | 꿈돌이 | 2017.03.01 | 540 |
4 | CodeIgniter - Helper 폐기 항목 | 꿈돌이 | 2016.06.14 | 1260 |
3 | CodeIgniter - Class Libraries 폐기 항목 | 꿈돌이 | 2016.06.14 | 479 |
2 | Windows에서 Composer로 CodeIgniter 설치하기 | 꿈돌이 | 2016.06.06 | 1213 |