Convertire un applicativo php da sqlite2 in sqlite3

From RVM Wiki
Jump to navigation Jump to search
  • In Debian 7 non esiste più il support php per sqlite2, e si potrebbero avere errori del tipo:
Call to undefined function sqlite_open() -
  • È possibile mimare le funzioni base con queste:
<?php
// FUNCTION TO BE COMPATIBLE WITH SQLITE2

function sqlite_open($location,$mode)
{
    $handle = new SQLite3($location);
    return $handle;
}

function sqlite_close($dbhandle)
{
	if ( $dbhandle->close() ) {
		return true;
	} else {
		return false;
	}
}

function sqlite_query($dbhandle,$query)
{
    $array['dbhandle'] = $dbhandle;
    $array['query'] = $query;
    $result = $dbhandle->query($query);
    return $result;
}

//function sqlite_fetch_array(&$result,$type)
function sqlite_fetch_array(&$result)
{
    #Get Columns
    $i = 0;
    while ($result->columnName($i))
    {
        $columns[ ] = $result->columnName($i);
        $i++;
    }
   
    $resx = $result->fetchArray(SQLITE3_ASSOC);
    return $resx;
}

//    if (sqlite_num_rows($result) > 0) {
function sqlite_num_rows($query) {
        $numRows = 0;
        while($rows = $query->fetchArray()){
            ++$numRows;
        }
        return $numRows;
}

function sqlite_exec($dbhandle,$query)
{
    $array['dbhandle'] = $dbhandle;
    $array['query'] = $query;
    if ( $dbhandle->query($query) ) {;
    	return true;
	} else {
		return false;
	}
}
?>
  • Installare le command line utilities sqlite3 (le sqlite2 sono rimaste da squeeze)
sudo apt-get install sqlite3
  • Convertire il file DB con:
sqlite old_database.sqlite .dump | sqlite3 new_datatabse.sqlite

Riferimenti