|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #68393 PDO Does Not Produce Exception For 'sqlite:' With Missing Filepath
Submitted: 2014-11-10 21:59 UTC Modified: 2015-06-22 15:05 UTC
Avg. Score:3.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: kyra at existing dot me Assigned:
Status: Verified Package: PDO SQLite
PHP Version: 5.6.2 OS: Linux
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2014-11-10 21:59 UTC] kyra at existing dot me
I was passing the SQLite filepath portion of the DSN as a variable and happened to pass an empty string, but PDO did not raise an Exception, and gave no indication the connection had failed.

If you check out you can see at some point after PHP 5.2.14 that this behavior began.

Test script:
$db = new PDO('sqlite:');

Expected result:
Fatal error: Uncaught exception 'PDOException' with message...


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2014-11-10 22:38 UTC]
From SQLite's point of view, this looks to be okay.

Here's a snippet from the SQLite docs[1], in the "Opening
A New Database Connection" section[2]:

  If the filename is an empty string, then a private,
  temporary on-disk database will be created. This 
  private database will be automatically deleted as 
  soon as the database connection is closed.

 [2014-11-10 22:52 UTC] kyra at existing dot me
Is this temp database being created in /tmp or in the current directory?

Also, isn't this basically the same thing as using :memory to create a temp db, but on disk? I would have thought there would be a :disk option instead of assuming the user wanted to create a temp db on disk, and had not made a coding error.

Is there, or should there be a note about this behavior in the PHP docs? I know I was stumped by my try/catch not working as expected to warn me.
 [2015-06-22 12:19 UTC]
-Type: Bug +Type: Documentation Problem
 [2015-06-22 12:19 UTC]
Switching to documentation problem. Maybe it would be worth to add a note?
 [2015-06-22 15:05 UTC]
-Status: Open +Status: Verified
 [2015-06-22 15:05 UTC]
The behavioral change has been introduced as fix for bug
#52010[1]. How temporary databases are handled by Sqlite3 is
#detailed in [2].

[1] <>
[2] <>
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Thu Oct 22 12:01:25 2020 UTC