我最近将我的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());
}
?>
答案 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>