>  기사  >  백엔드 개발  >  MySQL- PHP에서 데이터베이스를 연결하고 해제하는 가장 좋은 방법은 무엇입니까?

MySQL- PHP에서 데이터베이스를 연결하고 해제하는 가장 좋은 방법은 무엇입니까?

WBOY
WBOY원래의
2016-08-04 09:20:141505검색

매뉴얼에서 각 쿼리가 완료된 후 연결이 닫힙니다. 따라서 여러 데이터베이스 작업이있을 때는 일정한 생성 및 연결이 해제되지 않습니다 예를 들어 A.php는 20 개의 함수를 포함하고 있으며 각 객체를 인스턴스화해야하며 각 객체에는 데이터베이스 작업이 있습니다.

따라서 세 가지 방법이 있습니다.

1. > 2. A.php에서 데이터베이스 연결을 얻고 각 함수의 연결 매개 변수를 전달한 다음 마지막으로 A.PHP로 해제합니다. > 3. 정적 데이터베이스 연결 객체를 생성하고 각 클래스에서 ConnectionClass :: db

을 호출합니다. 더 나은 점은 논의하십시오.

.


답글 내용:

매뉴얼에서 각 쿼리가 완료된 후 연결이 닫힙니다. 따라서 여러 데이터베이스 작업이있을 때는 끊임없이 생성되고 연결이 발생하지 않습니까? 예를 들어 A.php는 20 개의 함수를 포함하고 있으며 각 객체를 인스턴스화해야하며 각 객체에는 데이터베이스 작업이 있습니다.

따라서 세 가지 방법이 있습니다.

1. > 2. A.php에서 데이터베이스 연결을 얻고 각 함수의 연결 매개 변수를 전달한 다음 마지막으로 A.PHP로 해제합니다. > 3. 정적 데이터베이스 연결 객체를 생성하고 각 클래스에서 ConnectionClass :: db

을 호출합니다. 더 나은 점은 논의하십시오.

.

정적 변수를 사용하여 데이터베이스 연결을 저장하면 여러 기능이 한 번의 요청에서 한 번만 데이터베이스에 연결할 수 있습니다. . 데이터베이스가 연결되어 있습니다

@impig33 다음 두 기능은 동일한 결과를 반환합니다. $ db가 처음으로 값을 할당 한 후에는 다른 시간에 실행되지 않으며, Uniqid 번호는 그렇지 않습니다. 생성됩니다.

다른 데이터베이스에 대해 잘 모르겠습니다. 연속 연결은 이전 데이터베이스 연결이 닫히지 않으며 이전 연결은 다음 연결에 직접 사용됩니다.


mysqli
:
는 MySQL과 유사한 기능이 없지만 연결시 호스트 이름을 추가 할 수 있습니다. MySQLI 확장 및 지속적인 연결. 수정 해 주신 @eeechen에게 감사드립니다.

MySQL 확장자와 달리 MySQLI는 지속적인 연결을 여는 특별한 방법을 제공하지 않습니다. 영구 연결을 열어야하는 경우 연결할 때 호스트 이름 앞에 p : p :을 추가해야합니다.

PDO는 또한 긴 연결을 지원합니다. ) New PDO의 4 번째 매개 변수에서 PHP 공식 매뉴얼 -PDO 연결 및 연결 관리 예제를 참조하십시오.

3bah, 이것에 대해 논의 할 필요가 없습니다. 일반적으로 DB 객체는 이미 합의 인 싱글 톤 모드를 채택합니다.

개인적으로, 나는 2가 최고라고 생각합니다. MySQL- PHP에서 데이터베이스를 연결하고 해제하는 가장 좋은 방법은 무엇입니까? 당신은 또한 연결 풀을 사용하는 것을 고려할 수 있습니다 https : //www.baidu.com/s? wd = ph ...

나는 또한 3이 싱글 톤 모드
<code><?php
function db() {
    static $db; //静态变量
    if ($db) {
        return $db;
    } else {
        $db = new mysqli('p:127.0.0.1','user','pass','dbname',3306);
        return $db;
    }
}
function foo1() {
    return db()->query('SELECT * FROM table1')->fetch_all();
}
function foo2() {
    return db()->query('SELECT * FROM table2')->fetch_all();
}
var_export( foo1() );
var_export( foo2() );</code>
를 지원한다고 생각합니다

이 답을 쓰는 방법을 모르겠습니다. 많은 것들 : 물체, 파괴자, 싱글 톤, 의존성 주입, 지속적인 연결

마지막으로, 나는 이것이 어렵지 않다는 것을 갑자기 깨달았으므로 프레임 워크를 발견하고 그것을 분석했고 Phalcon과 같은 것을 이해했습니다. 그리고 같은.
<code><?php
header('Content-Type: text/plain; charset=utf-8');
function db() {
    static $db; //静态变量
    if ($db) { return $db; } 
    else { $db = uniqid(mt_rand(), true); return $db; }
}
function foo1() { return db(); }
function foo2() { return db(); }
echo foo1()."\n";
echo foo2()."\n";</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.