Ciao a tutti,
devo fare una insert nel db MySql, se questa fallisce devo farne un'altra in una tabella di log per segnalare l'errore.
Ecco come lo sto facendo:
Codice PHP:
$conn4db1 = connetti('test');
$result = mysql_query($query, $conn4db1);
$dbid1_ai = mysql_insert_id($conn4db1);
if (! $result) {
$querylog = "INSERT INTO t20 (c20timestamp, c20user, c20query) VALUES (" . $timestamp . ", '" . $userinsert . "', '" . PreparaQuery($query) . "');";
$resultlog = mysql_query($querylog, $conn4db1);
}
mysql_close($conn4db1);
La funzione PreparaQuery pulisce la scringa da caratteri dannosi per MySql:
Codice PHP:
function PreparaQuery($stringa) {
if (get_magic_quotes_gpc()) {
$stringa = stripslashes($stringa);
}
$connpq = connetti('test');
$stringa = mysql_real_escape_string($stringa);
mysql_close($connpq);
return $stringa;}
L'errore che ottengo è mysql_query(): 20 is not a valid MySQL-Link resource sulla riga $resultlog = mysql_query($querylog, $conn4db1);
In sostanza la funzione PreparaQuery mi chiude la connessione $conn4db1 quando invece dovrebbe chiudere la connessione $connpq.
Perché???