-
Apostrofo in SQL
Buongiorno,
sò che l'argomento è stato trattato piu volte ma a quanto pare son imbranato e non riesco a capire come far funzionare mysql_escape_string($variabile) che da quello che ho capito è l'unico modo per poter inserire apostrofi in una stringa SQL.
Mi scuso ancora se vi può sembrare banale ma proprio non trovo modo per risolvere il problema, se qualcuno può darmi una mano poi vi giuro che non vi disturbo piu :)
Posto il codice della pagina di upload
Codice PHP:
<?
function upload()
{
$result = false;
$immagine = '';
$size = 0;
$type = '';
$nome = '';
$max_size = 300000;
$result = @is_uploaded_file($_FILES['file']['tmp_name']);
if (!$result)
{
echo "Impossibile eseguire l'upload.";
return false;
}else{
$size = $_FILES['file']['size'];
if ($size > $max_size)
{
echo "Il file è troppo grande.";
return false;
}
$type = $_FILES['file']['type'];
$nome = $_FILES['file']['name'];
$immagine = @file_get_contents($_FILES['file']['tmp_name']);
$immagine = addslashes($immagine);
@include 'config.php';
$sql = "INSERT INTO immagini(nome, size, type, immagine, descrizione, nome_prodotto, tipo, sottotipo, scheda_tecnica, verso_img) VALUES ('$nome','$size','$type','$immagine','$_POST[descrizione]','$_POST[nome_prodotto]','$_POST[tipo]','$_POST[sottotipo]', '$_POST[scheda_tecnica]','$_POST[verso_img]')";
$result = @mysql_query ($sql) or die (mysql_error());
return true;
echo "Prodotto caricato con successo";
}
}
?>
Un grazie in anticipo
-
Ma nel tuo codice non c'è la mysql_escape_string :roll:
-
@saitfinder Credo che intendesse solamente come inserirlo nel codice postato...
@christianresine Devi semplicemente "far passare" per quella funzione i dati provenienti dal form ($_GET oppure $_POST) prima di inglobarli nella query finale (che nel tuo codice è la variabile $sql).
Il modo più semplice è (ri)definire alcune variabili che poi utilizzerai nella composizione della query, qualcosa del genere per capirci:
Codice PHP:
$nome = mysql_real_escape_string ($_FILES['file']['name']);
$type = mysql_real_escape_string ($_FILES['file']['type']);
...
$descrizione = mysql_real_escape_string ($_POST['descrizione']);
...
$sql = "INSERT INTO immagini(nome, size, type, immagine, descrizione, nome_prodotto, tipo, sottotipo, scheda_tecnica, verso_img) VALUES ('$nome','$size','$type','$immagine','$descrizione','$nome_prodotto','$tipo','$sottotipo', '$scheda_tecnica','$verso_img')";
Stammi bene...