开发者

session_start Throws Fatal Error

I'm currently working on a small CMS for my website and I'm getting following error when calling session_start() :

Fatal error: Exception thrown without a stack frame in Unknown on line 0

I'm storing the PDO database connection in the $_SESSION, so I need to call session_start() directly after starting up the script. Here's a snippet :

function initDB($config){ //initali开发者_如何学运维zes 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();
}

Back traced the error to "@session_start()", so I'm not able to suspress the error with @ or even with a try-catch.

I Hope you could help me. Thanks a lot


You cannot store resources (a PDO object is actually a resource) in a session. On reinitialisation this is broken and throws an exception 'outside' the scope of your PHP file.


You're probably throwing an exception from a destructor of from an exception handler.


Resources :

  • Solving "Fatal error: Exeption thrown without a stack frame in unknown on line 0"

On the same topic :

  • Zend session_start gives Fatal error: Exception thrown without a stack frame in Unknown on line 0
  • How do I track down an “Exception thrown without a stack frame in Unknown on line 0” in PHP?


So, as I was told, saving a PDO object in the session does invoke that error. I used a workaround, I'm now setting up da connection for each request, instead of storing connections in the session.

Thanks for your help !

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜