php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #49518 can't open encrypted sqlite3 database
Submitted: 2009-09-10 08:15 UTC Modified: 2009-09-11 01:50 UTC
From: wjzhhr at gmail dot com Assigned:
Status: Not a bug Package: SQLite related
PHP Version: 5.3.0 OS: windwos xp
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: wjzhhr at gmail dot com
New email:
PHP Version: OS:

 

 [2009-09-10 08:15 UTC] wjzhhr at gmail dot com
Description:
------------
can't open encrypted database which created by  wxSQLite.

<?php
   $db = new SQLite3('x.db',SQLITE3_OPEN_READONLY,"1");
   $db->exec("PRAGMA KEY='1'");
   $result = $db->query('SELECT * FROM xxx');
   var_dump($result->fetchArray());
?>

Warning: SQLite3::query(): Unable to prepare statement: 26, file is encrypted or is not a database 


Reproduce code:
---------------
---
From manual page: sqlite3.open
---


Expected result:
----------------
my table: CREATE TABLE xxx(iswho text,itimes int);
liming|1
xiaojie|2
two records.
Expected result:
array(4) {
  [0]=>
  string(6) "liming"
  ["iswho"]=>
  string(6) "liming"
  [1]=>
  int(1)
  ["itimes"]=>
  int(1)
}



Actual result:
--------------
Warning: SQLite3::query(): Unable to prepare statement: 26, file is encrypted or is not a database 

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-09-10 09:58 UTC] sjoerd@php.net
Does it work when you supply the right encryption key as the third parameter?

SQLite3::__construct  ( string $filename  [, int $flags  [, string $encryption_key  ]] )
 [2009-09-10 13:12 UTC] scottmac@php.net
Pretty sure wxSQLite is SQLite2 and you need wxSQLite3.
 [2009-09-11 00:45 UTC] wjzhhr at gmail dot com
I use wxsqlite3-1.9.5 to create sqlite3 database, and the key is 1.

if I use sqlite3shell.exe open "x.db",the result will right.

I never use sqlite2,always use sqlite3.
 [2009-09-11 01:50 UTC] scottmac@php.net
wxsqlite3 contains a custom encryption layer that isn't part of the standard SQLite3 library which PHP includes.
 [2011-02-22 11:29 UTC] pbrun dot pro at gmail dot com
How create a SQLite database can open by php ?

i use :
$db = new SQLite3('test2.sqlite',SQLITE3_OPEN_CREATE,'test');
But the SQLite database create is not encrypted.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 16:01:28 2024 UTC