>php教程 >PHP开发 >PHP 개발 프레임워크 Laravel 데이터베이스 작업 방법 요약

PHP 개발 프레임워크 Laravel 데이터베이스 작업 방법 요약

高洛峰
高洛峰원래의
2016-12-27 10:27:211459검색

1. 읽기/쓰기 연결

때때로 SELECT 문에 하나의 데이터베이스 연결을 사용하고, 삽입, 업데이트 및 삭제 문에 다른 데이터베이스 연결을 사용하고 싶을 수도 있습니다. Laravel은 이를 쉽게 수행하며 원시 쿼리, 쿼리 빌더 또는 Eloquent ORM을 사용하든 항상 올바른 연결을 사용합니다.

읽기/쓰기 연결을 구성하는 방법은 다음 예를 살펴보겠습니다.

'mysql' => array('read' => array('host' => '192.168.1.1'),'write' => array('host' => '196.168.1.2'),'driver' => 'mysql','database' =>'database','username' => 'root','password' => '','charset' => 'utf8','collation' => 'utf8_unicode_ci','prefix' => '')

구성 배열에 읽기 및 쓰기라는 두 개의 키가 추가됩니다. 두 키 모두 하나의 키(host)를 포함하는 배열 값을 갖습니다. 기본 mysql 연결의 나머지 읽기 및 쓰기 데이터베이스 옵션은 병합된 배열이 됩니다. 따라서 기본 배열의 값을 덮어쓰려면 읽기 및 쓰기 배열에 항목을 넣으면 됩니다. 따라서 이 경우 192.168.1.1은 "읽기" 연결로 사용되고 192.168.1.2는 "쓰기" 연결로 사용됩니다. 기본 mysql 배열의 데이터베이스 자격 증명, 접두사, 문자 집합 및 기타 모든 옵션은 두 연결에서 공유됩니다.

2. 쿼리 실행

데이터베이스 연결을 구성한 후에는 DB 실행 쿼리 클래스를 사용할 수 있습니다.

Select 쿼리 실행

$results = DB::select('select * from users where id = ?', array(1));

결과 선택 메서드는 항상 배열을 반환합니다.


Insert 문 실행

 DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));

Update 문 실행

  DB::update('update users set votes = 100 where name = ?', array('John'));

Delete 문 실행

DB::delete('delete from users');

참고: 업데이트 및 삭제 문에서 반환된 행 수는 작업에 영향을 미칩니다.

일반 문 실행

DB::statement('drop table users');

이벤트 리스너 쿼리

DB::listening 메서드를 사용하여 이벤트 리스너를 쿼리할 수 있습니다.

DB::listen(function($sql, $bindings, $time){ //});

세 번째, 데이터베이스 트랜잭션

데이터베이스 트랜잭션에서 일련의 작업을 실행하려면 다음 트랜잭션 메서드를 사용할 수 있습니다.

 DB::transaction(function(){ DB::table('users')->update(array('votes' 
=> 1)); DB::table('posts')->delete();});

참고: 트랜잭션 종료 중에 예외가 발생하면 자동 트랜잭션이 발생합니다. 롤백

때로는 트랜잭션을 시작해야 할 수도 있습니다.

DB::beginTransaction();

롤백 방법을 통해 트랜잭션을 롤백할 수 있습니다.

DB::rollback();

마지막으로, commit 메소드를 통해 수행할 수 있습니다. 트랜잭션 커밋

DB::commit();

4. 연결에 액세스

여러 연결을 사용하는 경우 DB::Connection 메소드를 통해 액세스할 수 있습니다.

$users = DB::connection('foo')->select(...);

원래의 기본 PDO 인스턴스에 액세스할 수도 있습니다:

$pdo = DB::connection()->getPdo();

때로는 특정 데이터베이스에 다시 연결해야 할 수도 있습니다:

DB::reconnect('foo');

주어진 데이터베이스에서 연결을 끊어야 합니다. 데이터베이스가 기본 PDO 인스턴스의max_connections 제한을 초과하므로 연결 끊기 방법을 사용하십시오:

DB::disconnect('foo');

5. 쿼리 로그

기본적으로 Laravel 로그는 다음과 같습니다. 현재 요청을 실행 중인 모든 쿼리에 대해 메모리에 보관됩니다. 그러나 많은 수의 행을 삽입하는 경우와 같은 일부 경우에는 이로 인해 애플리케이션이 과도한 메모리를 사용할 수 있습니다. 로그를 비활성화하려면 비활성화QueryLog 메소드를 사용할 수 있습니다.

DB::connection()->disableQueryLog();

o 실행된 쿼리 집합을 가져오려면 getQueryLog 메소드를 사용할 수 있습니다.

$queries = DB::getQueryLog();

추가 PHP 개발 프레임워크 Laravel 데이터베이스 운영 방법 관련 기사를 요약하려면 PHP 중국어 사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.