ESEMPIO

<?php
$sqlite = &sqlite_open( 'testDatabase.sql' );
@$query = &sqlite_unbuffered_query( $sqlite, "CREATE TABLE test ( id INTEGER PRIMARY KEY, dato VARCHAR(255) )" );

$stringa_apice_singolo = "Ciao anto'";
$stringa_apice_doppio = 'Ciao anto"';
$stringa_apici_tra_doppi = "Ciao anto' , sempre in \"forma\" ?";
$stringa_apici_tra_singoli = 'Ciao anto\\' , sempre in "forma" ?';

// INSERISCO I DATI TRA APOSTROFI SINGOLI [ MODO CORRETTO DI ESCAPE ]
sqlite_unbuffered_query( $sqlite, "INSERT INTO test VALUES ( NULL, '".sqlite_escape_string( $stringa_apice_singolo )."' )" );
sqlite_unbuffered_query( $sqlite, "INSERT INTO test VALUES ( NULL, '".sqlite_escape_string( $stringa_apice_doppio )."' )" );
sqlite_unbuffered_query( $sqlite, "INSERT INTO test VALUES ( NULL, '".sqlite_escape_string( $stringa_apici_tra_doppi )."' )" );
sqlite_unbuffered_query( $sqlite, "INSERT INTO test VALUES ( NULL, '".sqlite_escape_string( $stringa_apici_tra_singoli )."' )" );

// INSERISCO I DATI TRA APOSTROFI DOPPI
sqlite_unbuffered_query( $sqlite, 'INSERT INTO test VALUES ( NULL, "'.sqlite_escape_string( $stringa_apice_singolo ).'" )' );
sqlite_unbuffered_query( $sqlite, 'INSERT INTO test VALUES ( NULL, "'.sqlite_escape_string( $stringa_apice_doppio ).'" )' ); // ERRORE
sqlite_unbuffered_query( $sqlite, 'INSERT INTO test VALUES ( NULL, "'.sqlite_escape_string( $stringa_apici_tra_doppi ).'" )' ); // ERRORE
sqlite_unbuffered_query( $sqlite, 'INSERT INTO test VALUES ( NULL, "'.sqlite_escape_string( $stringa_apici_tra_singoli ).'" )' ); // ERRORE
?>



CONCLUSIONE
  • Non utilizzare addslashes per inserire i dati su SQLite
  • Usare sempre gli apostrofi singoli per inserire i dati ( inteso non come query tra apostrofi singoli ma come stringe tra apostrofi singoli )



ESEMPIO CORRETTO DI QUERY

$query1 = 'INSERT INTO test VALUES ( NULL, \\''.sqlite_escape_string( $stringa_apici_tra_doppi ).'\\' )';
$query2 = "INSERT INTO test VALUES ( NULL, '".sqlite_escape_string( $stringa_apici_tra_doppi )."' )";

sqlite_unbuffered_query( $sqlite, $query1 ); // OK
sqlite_unbuffered_query( $sqlite, $query2 ); // OK