Pear Db 클래스를 사용하여 MySql 데이터베이스와 상호 작용하는 Database.php라는 클래스를 생성했습니다.배 DB 클래스가 없습니다.
Database.php
<?php
require_once('DB.php');
require_once('cException.php');
class DataBase
{
private $dsn = 'mysql://root:[email protected]/avatar';
private $conn;
//Constructor
function __construct()
{
global $conn;
$this->conn = DB::connect($dsn);
if(DB::isError($conn))
{
throw new DatabaseConnectionException();
}
}
//destructor
function __destruct()
{
$this->conn->disconnect();
}
public function select($query)
{
$conn->setFetchMode(DB_FETCHMODE_ASSOC);
$result = & $conn->query($query);
if(DB::isError($result))
{
return new SelectCommandException($result->getMessage());
}
return $result;
}
static public function instance()
{
static $objDB;
if(! isset($objDB))
{
$objDB = new DataBase();
}
return $objDB;
}
?>
그리고 내가 테스트를 실행 test.php
test.php
<?php
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
error_reporting(E_ALL);
require_once 'Database.php';
try
{
$db = DataBase::instance();
}
catch (DatabaseConnectionException $ex1)
{
echo $ex1->toString();
}
try
{
$sql = "Select * from register";
$result = $db->select($sql);
var_dump($result);
}
catch (SelectCommandException $ex2)
{
echo $ex2->toString();
}
?>
샘플 파일에서이 클래스를 호출하고 있습니다. PHP는 다음과 같은 오류가 발생합니다
Warning: require_once(/usr/share/pear/DB.php): failed to open stream: No such file or directory in /var/www/Avatar/Database.php on line 2 Fatal error: require_once(): Failed opening required '/usr/share/pear/DB.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/Avatar/Database.php on line 2
왜이 오류가 발생하는지 알 수 없습니다. phpinfo()에서 include_path .:/usr/share/php:/usr/share/pear .:/usr/share/php:/usr/share/pear
나는 php5
을 사용하고 있으며, 심지어는 패키지를 설치하려고 시도했지만 여전히 같은 오류가 발생합니다. 나는 무엇이 잘못되었는지 이해하지 못한다. 누군가가 올바른 방향으로 나를 가리킬 수 있습니까?
참고 :sudo apt-get install php5
을 사용하여 php5를 설치하지 않았습니다. Keryx 응용 프로그램을 사용하여 php5 패키지를 다운로드했습니다.
감사로 설치 할 수 있습니다 많이. :). 즉, PHP DB 클래스는 PHP 5와 함께 제공되지 않습니다. 빠른 답장을 보내 주셔서 다시 한번 감사드립니다. – Searock
@Searock - http://pear.php.net/package/DB - 가능성은 희박합니다. 이 패키지 사이에 ** 대체 ** – ajreal
그래서 Pear DB 클래스 사용을 중단하고 MDB2로 전환하는 것이 좋습니다? – Searock