mysql 연결 페이지의 php.net에서 db 어댑터를 발견했습니다.
이것은 꽤 많이 볼 수있는 페이지입니다 (저는 상상할 것입니다).
DB 어댑터가 php.net에서 발견되었습니다
작성자가 싱글 톤 패턴 클래스라고 주장하는 것을 포함합니다. http://php.net/manual/en/function.mysql-connect.php
작가에 찾을 수
는 말한다 :
이"여기에 하나의 데이터베이스 연결을 관리하는 싱글 톤 클래스 년대 열기 방법은 통해 INI 파일 에서 읽을 defautls 같은 상수 값을 사용합니다. 이니셜 라이저 스크립트는 각 웹 페이지의 맨 위에로드됩니다. 은 수동으로 직접 입력하여 기본값을 무시할 수도 있습니다 ( 경우 서버 또는 데이터베이스 이름을 중간 스크립트로 전환해야 함). 함수는 준비된 문을 반환하고 첫 번째 연관 행, 첫 번째 셀 또는 두 번째 매개 변수 (생략 된 경우 전체 결과)를 기반으로 한 전체 결과 집합을 반환합니다.
사용법 : $ DB = DB :: Open();
$ result = $ DB-> qry ("{SQL 문};");
<?php
abstract class Database_Object
{
protected static $DB_Name;
protected static $DB_Open;
protected static $DB_Conn;
protected function __construct($database, $hostname, $hostport, $username, $password)
{
self::$DB_Name = $database;
self::$DB_Conn = mysql_connect($hostname . ":" . $hostport, $username, $password);
if (!self::$DB_Conn) { die('Critical Stop Error: Database Error<br />' . mysql_error()); }
mysql_select_db(self::$DB_Name, self::$DB_Conn);
}
private function __clone() {}
public function __destruct()
{
// mysql_close(self::$DB_Conn); <-- commented out due to current shared-link close 'feature'. If left in, causes a warning that this is not a valid link resource.
}
}
final class DB extends Database_Object
{
public static function Open($database = DB_NAME, $hostname = DB_HOST, $hostport = DB_PORT, $username = DB_USER,$password = DB_PASS)
{
if (!self::$DB_Open)
{
self::$DB_Open = new self($database, $hostname, $hostport, $username, $password);
}
else
{
self::$DB_Open = null;
self::$DB_Open = new self($database, $hostname, $hostport, $username, $password);
}
return self::$DB_Open;
}
public function qry($sql, $return_format = 0)
{
$query = mysql_query($sql, self::$DB_Conn) OR die(mysql_error());
switch ($return_format)
{
case 1:
$query = mysql_fetch_row($query);
return $query;
break;
case 2:
$query = mysql_fetch_array($query);
return $query;
break;
case 3:
$query = mysql_fetch_row($query);
$query = $query[0];
return $query;
default:
return $query;
}
}
}
?>
나는 질문이 하나의 코드를 살펴본 후,이 싱글 (DB 클래스와 열기 기능을 참조하십시오) 정말?
정적 속성으로 인해 싱글 톤 패턴이 작동합니까?
이 확장 기능은 PHP 5.5.0부터 제공되지 않을 예정이며 앞으로 삭제 될 예정입니다. 대신 MySQLi 또는 PDO_MySQL 확장을 사용해야합니다. 자세한 내용은 MySQL : API 가이드 선택 및 관련 FAQ를 참조하십시오. – Chris
안녕하세요, @ 크리스 당신은 바로 감사합니다. oop 원리와 싱글 톤 패턴에 관심이 있습니다. 감사합니다 –
좋은 싱글 톤 구조는 이것입니다 : http://stackoverflow.com/questions/8994541/php-dont-allow-object-to-instantiate-more-than-once/8994589#8994589 체크 아웃 : – Chris