Originariamente inviato da piero.mac
forse perche' non fai la connessione al db prima di usare mysql_real_escape_string()

La funzione deve valutare il character set della connessione.
io faccio cosi, raccolgo tutto ciò che mi serve dal $_POST, creo la query e poi la eseguo (ho una classe cosi per il database)

Codice PHP:
<?php 
class Database
{
function 
GetDatabaseResult($Query)
{
    
$sql_host "localhost:3306";
    
$sql_user "root";
    
$sql_pwl "root";
    
$sql_db "database";
    if (!
$connessione_db mysql_connect($sql_host,$sql_user,$sql_pwl))
    {
        
user_error("Errore di connessione $sql_host$sql_user$sql_password$sql_db"); 
        return 
false;
    }
    if (!
mysql_select_db($sql_db))
    {
        
user_error("Database non disponibile");
        return 
false;
    }
    if (!
$result mysql_query($Query$connessione_db))
    {
        
user_error(mysql_error());
        return 
false;
    }
    
mysql_close($connessione_db);
    return 
$result;  
}
}
?>
e quando devo salvare le modifiche

Codice PHP:

function SalvaModificheNelDatabase()
{
$id$_POST["id"];
$coltura $_POST["coltura"];
...
...
...
$descrizione_concimazioni strip_tags($_POST['descrizione_concimazioni']);
$descrizione_concimazioni mysql_real_escape_string($descrizione_concimazioni);
$descrizione_trattamenti strip_tags($_POST['descrizione_trattamenti']);
$descrizione_trattamenti mysql_real_escape_string($descrizione_trattamenti); 
...
...
...
$db = new Database();

$query "UPDATE table SET ... WHERE id=$id";        

if (!
$db->GetDatabaseResult($query))
{
return 
ModificaDatiFallita();
}
return 
TuttoOk();

come dovrei fare? Visto che il database lo richiamo dopo...
Inoltre, le lettere accentate mi vengono salvate/estratte anche se non uso mysql_real_escape_string... :master: