Wampserver升级问题

时间:2014-11-10 06:14:24

标签: php mysql wampserver smarty3

我最近将我的wampserver 2.0更新为wampserver 2.5。

当我运行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:$dbPassword@localhost/$dbName"); $dbdsn = "mysql://$dbUser:$dbPassword@$dbHost/$dbName"; 
$db = DB::connect($dbdsn); 
if (DB::isError($db)) { 
   die ($db->getMessage()); 
}
?>

2 个答案:

答案 0 :(得分:0)

自PHP 5.5.0起,不推荐使用MySQL扩展,不建议用于编写新代码,因为将来会删除它。相反,应该使用mysqli或PDO_MySQL扩展。参考:http://php.net/manual/en/function.mysql-select-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.php文件代码中找不到类。我发送DB的类代码时会更新我的答案

答案 1 :(得分:0)

它不是首选的解决方案,但这应该让你再次工作。

我强烈建议你实际上使用mysql_ *扩展转换你的代码而不是使用mysqli_ *或PDO,因为最终这种方法不起作用,因为PHP的开发人员实际上不再提供mysql_ *扩展

但您可以通过更改php.ini配置来删除警告消息,如下所示: -

修改php.ini

找到这一行

error_reporting = E_ALL

并将其更改为

error_reporting = E_ALL & ~E_DEPRECATED

或者,如果您无权访问php.ini文件,可以在db.php脚本的顶部添加此PHP代码

error_reporting( E_ALL ^ E_DEPRECATED );

如果您使用的是虚拟主机,您实际上可以将其添加到仍在使用旧mysql_*扩展名的网站的特定VH,因此不会影响您可能正在开发/维护的其他网站

不幸的是,在VH定义中,您必须使用整数值。

<VirtualHost....>
   . . .

   php_value error_reporting 24575
</VirtualHost>