Я недавно обновил свой 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"
Я думаю, что это может быть проблемой старого вампервера.
пожалуйста, помогите мне
//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());
}
?>
Начиная с PHP 5.5.0 расширение MySQL устарело и не рекомендуется для написания нового кода, так как оно будет удалено в будущем. Вместо этого следует использовать расширение mysqli или PDO_MySQL. Ref: 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 отсутствует класс. Я обновлю свой ответ, когда вы отправите код класса БД
Это не предпочтительное решение, но это должно заставить вас снова работать.
Я настоятельно рекомендую вам на самом деле конвертировать код с использованием расширения mysql_ *, а не использовать mysqli_ * или PDO, поскольку в конечном итоге этот подход не будет работать, поскольку разработчики PHP на самом деле больше не будут предоставлять расширение mysql_ *.
Но вы можете удалить предупреждающие сообщения, изменив конфигурацию php.ini следующим образом: —
редактировать php.ini
Найти эту строку
error_reporting = E_ALL
и изменить его на
error_reporting = E_ALL & ~E_DEPRECATED
Или вы можете просто добавить этот код PHP в верхней части вашего db.php
скрипт, если у вас нет доступа к файлу php.ini
error_reporting( E_ALL ^ E_DEPRECATED );
Если вы используете виртуальные хосты, вы можете добавить это к конкретному VH для сайта, который все еще использует старый mysql_*
поэтому расширение не влияет на другой сайт, который вы можете разрабатывать / поддерживать
К сожалению, в определении VH вы должны использовать целочисленное значение.
<VirtualHost....>
. . .
php_value error_reporting 24575
</VirtualHost>