2014-11-10 6 views
0

최근 wampserver 2.0을 wampserver 2.5로 업데이트했습니다.Wampserver 업그레이드 문제

그리고 나는 PHP smarty 코드를 실행하는 동안이 오류가 발생합니다.

"Fatal error: Class 'DB' not found in 
    C:\wamp\www\livehrm.new\product\common.php on line 63" 

오래 된 wampserver의 배 문제 일 수도 있습니다.

//session_start(); 
require_once 'DB.php'; 
$dbHost = $dbconfig['db_hostname']; 
$dsn1[0] = array('type'=>'DB', 'dsnstuff'=>"mysql://$dbUser:[email protected]/$dbName"); $dbdsn = "mysql://$dbUser:[email protected]$dbHost/$dbName"; 
$db = DB::connect($dbdsn); 
if (DB::isError($db)) { 
    die ($db->getMessage()); 
} 
?> 
+0

은 그냥) (db.php를의 코드를 – Ghost

+0

를 사용하는 그것의 시간을 의미한다; require_once 'DB.php'; $ dbHost = $ dbconfig [ 'db_hostname'];$ dsn1 [0] = array ('type'=> 'DB', 'dsnstuff'=> "mysql : // $ dbUser : $ dbPassword @ localhost/$ dbName"); $ dbdsn = "mysql : // $ dbUser : $ dbPassword @ $ dbHost/$ dbName"; $ db = DB :: connect ($ dbdsn); if (DB :: isError ($ db)) { \t die ($ db-> getMessage()); \t} ?> –

+0

//으로 session_start를 제공 mysqli 또는 PDO : –

답변

0

MySQL의 확장은 PHP 5.5.0 추천되지 않습니다, 그리고 그것은 미래에서 제거 될 예정으로 새로운 코드를 작성하지 않는 것이 좋습니다 도와주세요. 대신 mysqli 또는 PDO_MySQL 확장을 사용해야합니다. 참고 : http://php.net/manual/en/function.mysql-select-db.php

업데이트와 db.php를 코드 다음은 파일 db.php를 코드를 제공에서 발견 된 클래스가 없다

<?php 
$con = mysqli_connect("localhost","root",""); 
$db="livehrm"; 

if (!$con) 
{ 
    die('Could not connect: ' . mysqli_error($con)); 
} 

mysqli_select_db($con, $db) or die ("Database connection error:\n" . mysqli_error($con)); 

?> 

. DB의 클래스 코드를 보낼 때 내 대답을 업데이트합니다

+0

두 개의 db 파일이 있습니다. 하나는 배 안에 DB.php이고 다른 하나는 db입니다. 당신이 제공 한 코드로 db.php를 업데이트했을 때 ("더 이상 사용되지 않습니다 : mysql_connect() : mysql 확장이 사용되지 않으며 앞으로 제거 될 것입니다 : mysqli 또는 PDO 사용") 사라졌습니다. 이제 유일한 오류는 치명적인 오류입니다 : 'DB'클래스가 C : \ wamp \ www \ livehrm.new \ product \ common.php의 63 행에 없습니다. "DB (대문자 DB.php)는 old wampserver 2.0 그 배 폴더는 새로운 wampserver 2.5에 포함되어 있지 않습니다. 다음 주석에서 common.php의 코드를 다시 업데이트하겠습니다. –

+0

require_once 'DB.php'; $ dbHost = $ dbconfig [ 'db_hostname']; \t $ dsn1 [0] = array ('type'=> 'DB', 'dsnstuff'=> "db : $ dbPassword @ localhost/$ dbName"); \t // DB :: connect는 성공시 PEAR DB 객체를 반환합니다. \t // PEAR DB 오류 객체 오류 \t // 데이터베이스에 연결 \t $ dbdsn = "mysql : // $ dbUser : $ dbPassword @ $ dbHost/$ dbName"; \t $ db = DB :: connect ($ dbdsn); \t // 확인 유효한 연결이 반환되는 경우 \t 경우 (DB : ISERROR ($의 dB)) { \t \t \t 다이 ($ DB->의 getMessage()); \t} –

+0

다음 코드에서 내 이전 wampserver2.0의 이전 DB.php도 업데이트합니다. –

0

그게 바람직한 솔루션이 아니지만,이 작업을 다시해야합니다.

실제로 mysql_ * 확장자를 사용하지 않도록 코드를 변환하는 것이 좋습니다. mysqld_ * 또는 PDO 중 하나를 사용하는 것이 좋습니다. PHP 개발자가 실제로는 더 이상 mysql_ * 신장.

하지만 당신은 다음과 같이 php.ini 파일 설정을 변경하여 경고 메시지를 제거 할 수 있습니다 : -

편집 php.ini

이 줄

error_reporting = E_ALL 

을 찾아

error_reporting = E_ALL & ~E_DEPRECATED 
로 변경

아니면 그냥이 PHP 코드를 t에 추가하면됩니다. 당신은 당신이 가상 호스트를 사용하는 경우 실제로 여전히 때문에 이전 mysql_* 확장자를 사용하는 사이트의 특정 VH이를 추가 할 수 있습니다

error_reporting(E_ALL^E_DEPRECATED); 

당신의 php.ini 파일에 대한 액세스를 해달라고 경우 db.php 스크립트의 영업 이익

불행히도 VH 정의에서 정수 값을 사용해야합니다.

<VirtualHost....> 
    . . . 

    php_value error_reporting 24575 
</VirtualHost> 
+0

mysqli로 db.php (small db)를 업데이트했는데 문제가 해결되었습니다. 하지만 2.0에서 wampserver를 2.5로 업데이트 한 후의 주요 오류는 "Class 'DB'가 C : \ Wamp \ www \ livehrm.new \ product \ common.php의 63 행에 없습니다"입니다. DB (대문자 DB.php)는 오래된 wampserver 2.0의 폴더 배 안에 있습니다. 그 배 폴더는 새로운 wampserver 2.5에 포함되어 있지 않습니다. 제발 도와주세요. 귀하의 세부 정보를 공유하면 코드를 보내 드리겠습니다. –

+0

PEAR은 PHP 설치의 일부로 제공되지 않으므로 직접 설치해야합니다. 거기에 자습서가 많이있다 구글 검색을 수행, 일부는 꽤 좋다. 또는 WAMPServer – RiggsFolly

+0

에 PEAR 설치와 관련된 다른 질문을 물어보십시오. 확인을 위해 노력할 것이므로 업데이트 드리겠습니다. –