dismiss Step into the future! Click here to switch to the beta php.net site
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

Introduction> <sqlite_valid
[edit] Last updated: Fri, 28 Jun 2013

view this page in

SQLite3



Introduction> <sqlite_valid
[edit] Last updated: Fri, 28 Jun 2013
 
add a note add a note User Contributed Notes SQLite3 - [3 notes]
up
3
Anonymous
1 year ago
As of PHP 5.4 support for Sqlite2 has been removed. I have a large web app that was built with sqlite2 as the database backend and thus it exploded when I updated PHP. If you're in a similar situation I've written a few wrapper functions that will allow your app to work whilst you convert the code to sqlite3.

Firstly convert your DB to an sqlite3 db.

sqlite OLD.DB .dump | sqlite3 NEW.DB

Then add the following functions to your app:

<?php
function sqlite_open($location,$mode)
{
   
$handle = new SQLite3($location);
    return
$handle;
}
function
sqlite_query($dbhandle,$query)
{
   
$array['dbhandle'] = $dbhandle;
   
$array['query'] = $query;
   
$result = $dbhandle->query($query);
    return
$result;
}
function
sqlite_fetch_array(&$result,$type)
{
   
#Get Columns
   
$i = 0;
    while (
$result->columnName($i))
    {
       
$columns[ ] = $result->columnName($i);
       
$i++;
    }
   
   
$resx = $result->fetchArray(SQLITE3_ASSOC);
    return
$resx;
}
?>

They're not perfect by any stretch but they seem to be working ok as a temporary measure while I convert the site.
Hope that helps someone
up
0
Anonymous
2 years ago
If you get the following error for non-encrypted databases:

Warning: SQLite3::query() [sqlite3.query]: Unable to prepare statement: 26, file is encrypted or is not a database in …

... use PDO instead of this library.
up
0
alan at chandlerfamily dot org dot uk
2 years ago
PHP 5.3.3 introduced sqlite3::busyTimeout(int milliseconds) which does not currently seem to be documented.

It believe it acts like sqlite::busyTimeout - that is it tells sqlite3 to call an internal busyHandler if SQLITE_BUSY is returned from any call which waits a short period and then retries.  It continues to do this until milliseconds milliseconds have elapsed and then returns the SQLITE_BUSY status.

I don't know whether the default 60 second value is in place if this function is not called.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites