[SQLite] Errore durante l'upload delle immagini

Ciao,

devo caricare delle immagini in un database (uso sqlite).

Per fare questo tilizzo le seguendi istruzioni:

$dati_file = file_get_contents($nome_file);

$dati_file = addslashes($dati_file);

$sql = "INSERT INTO immagini (file_name, file_type, image_data) VALUES ('$nome_file_vero', '$tipo_file', '$dati_file')";

sqlite_query($dbConnection, $sql);

Generalmente va tutto bene ma per alcune immagini mi visualizza un warning:

Warning: sqlite_query() [function.sqlite-query]: unrecognized token: "\"

(alla riga che esegue la insert)

E la insert non viene eseguita.

Sembra che nei bytes dell'immagine vi siano dei caratteri non riconosciuti.

Come mai alcune immagini vengono caricate ed altre no?

Come posso fare per caricare quelle che danno errore?

Grazie 1000.

inviato 11 anni fa
romeomgv
X 0 X

Secondo il manuale ufficiale di PHP:

Avvertimento

La funzione addslashes() NON dovrebbe essere utilizzata per inserire i caratteri di escape nelle query SQLite; questa porta a strani risultati quando si recuperano i dati.

pertanto prova a sostituire addslashes con sqlite_escape_string

 :bye:

P.S.: sposto la discussione e modifico il titolo

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Molte grazie.

Poi per togliere gli escape uso stripspashes(), posso continuare ad utilizzarla o devo usare un'altra funzione?

risposto 11 anni fa
romeomgv
X 0 X

I caratteri di escape servono solo per rendere la query ben formattata, ma nel DB non verranno mai inseriti.

Pertanto quando poi estrai l'immagine dal DB, questa sarą priva di caratteri di escape e potrai subito inviarla in output.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

L'ho provato e funziona tutto!

Grazie 1000!

 O0

risposto 11 anni fa
romeomgv
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda