을 호출합니다.
더 나은 점은 논의하십시오. .
을 호출합니다.
더 나은 점은 논의하십시오.
답글 내용:
@impig33 다음 두 기능은 동일한 결과를 반환합니다. $ db가 처음으로 값을 할당 한 후에는 다른 시간에 실행되지 않으며, Uniqid 번호는 그렇지 않습니다. 생성됩니다.
mysqli
:
는 MySQL과 유사한 기능이 없지만 연결시 호스트 이름을 추가 할 수 있습니다. MySQLI 확장 및 지속적인 연결. 수정 해 주신 @eeechen에게 감사드립니다.
MySQL 확장자와 달리 MySQLI는 지속적인 연결을 여는 특별한 방법을 제공하지 않습니다. 영구 연결을 열어야하는 경우 연결할 때 호스트 이름 앞에 p : p :을 추가해야합니다.
PDO는 또한 긴 연결을 지원합니다. ) New PDO의 4 번째 매개 변수에서 PHP 공식 매뉴얼 -PDO 연결 및 연결 관리 예제를 참조하십시오.
3bah, 이것에 대해 논의 할 필요가 없습니다. 일반적으로 DB 객체는 이미 합의 인 싱글 톤 모드를 채택합니다.
개인적으로, 나는 2가 최고라고 생각합니다.
<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>
<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>