В настоящее время я работаю над небольшой CMS для своего сайта, и при вызове session_start() я получаю следующую ошибку:
Неустранимая ошибка: Исключение выбрано без фрейма стека Неизвестно в строке 0
Я сохраняю соединение базы данных PDO в $_SESSION, поэтому мне нужно вызвать session_start() непосредственно после запуска script. Вот фрагмент:
function initDB($config){ //initalizes the database connection
try{
@session_start();
}catch (Exception $e){
}
$dsn = 'mysql:dbname='.$config['db'].';host='.$config['host'];
$user = $config['usr'];
$password = $config['pw'];
try {
$db = new PDO($dsn, $user, $password);
$_SESSION['db'] = $db;
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
Назад прослеживает ошибку до "@session_start()", поэтому я не могу зафиксировать ошибку с @или даже с try-catch.
Надеюсь, ты поможешь мне. Большое спасибо
Вы не можете хранить ресурсы (объект PDO - фактически ресурс) в сеансе. При повторной инициализации это прерывается и выдает исключение "вне" области вашего PHP файла.
fopen
ресурсы.
Итак, как мне сказали, сохранение объекта PDO в сеансе вызывает эту ошибку. Я использовал обходной путь, теперь я настраиваю соединение da для каждого запроса вместо хранения соединений в сеансе.
Спасибо за вашу помощь!
Вероятно, вы выбрали исключение из деструктора из обработчика исключений.
Ресурсы:
В той же теме: